XIX Russia Team Open, High School Programming Contest

From EOJ Wiki
Jump to navigation Jump to search

Problem A

Solved by Weaver_zhu. 00:10 (+)

Problem B

Solved by Xiejiadong. 02:22 (+)

字符串签到。

直接拿 map 给每一个字符串编号即可。

Problem C

Solved by Kilo_5723. 03:19 (+)

Problem D

Solved by Kilo_5723. 00:45 (+)

Problem E

Upsolved by Weaver_zhu. (-3)

Problem F

Solved by Xiejiadong. 03:30 (+)

题意:每次询问三个下标,给出这三个下标位置的三个数的$max+min$,求这个数列。

题解:对于四个数,我们不妨假设$a\le b\le c\le d$,那么每次去掉一个数做四次询问,显然这个询问中的最大值+最小值就是这四个数的和,因为在上面的情况中最大+最小$=(a+b)+(c+d)$。

然后我们对于前五个数,对于每四个数询问出和,就可以得到这五个数的具体情况了,这样一共需要的询问次数是$4*5=20$。

然后对于之后的每个数,我们只需要询问他前面三个数和他四个数的和(需要四次询问),即可得到他的准确值。

前五个数的情况,我们用了$20$次,正好$4*5$,之后的每个数得到都需要$4$次询问,所以总的询问次数正好是$4n$,卡着过。

Problem G

Unsolved.

Problem H

Unsolved.

Problem I

Solved by Xiejiadong. 01:26 (+4)

题意:求一列数中任意一对有序对相乘的最小值。

题解:对于每一个数,找一个他前面比他小的数中最小的,找他后面比他大的数中最大的即可。

显然,这样涵盖了最优解可能产生的位置。

Problem J

Unsolved.

Problem K

Solved by Kilo_5723. 01:38 (+)

Problem L

Solved by Xiejiadong. 01:04 (+1)

题意:单周上大小为$a$的教室,双周上大小为$b$的教室,一共$n$周,每个人需要至少上$k$周才能合格,求最大合格人数。

题解:考虑单周、双周、以及所有时间的情况下对人的限制。

设单周有$x$,双周有$y$,显然答案就是$\min\{\lfloor \frac {ax+by}{k} \rfloor, \lfloor \frac {ax}{k-y} \rfloor, \lfloor \frac {by}{k-x} \rfloor \}$。

不过需要注意分母$\le 0$的时候,说明限制没有意义,不需要考虑。

Problem M

Solved by Kilo_5723. 00:14 (+)