2015 Jakarta Regional Analysis

今天我们做了亚洲区域赛雅加达赛区的题目,感觉简单题蛮多的,有四道中等偏难的题我们就不会了……感觉平时的区域赛训练只是为了保持手感,难题的突破还是需要靠刷专题的。

A. Arithmetical CAPTCHA

签到题,枚举三个符号的情况即可

B. Udin and Ucok

知识点

博弈

题目大意

有$n$个球排成一行,有两个人轮流操作,每个人每次从当前存在的球中选择一个,将它和它相邻的左右两个球(如果有相邻的)拿走,球被拿走后两边不会合并。直到一个人不能再操作为止,这个人就会输。问是否先手必胜。

做法

首先,我们可以大出sg表,在sg表打好后,我们可以发现,除了前面有几项是特殊的外,其他的都以$34$为循环节。

C. Counting Partition

未解决

D. An ICPC Problem without Statement

知识点

贪心? + 枚举

题目大意

给出$n$个数,每个数的范围为$-2 \dots 2$,再给出两个数$A$、$B$,要从这$n$个数中选择$p$个($A \leq p \leq B$),使得它们的乘积最大。输出方案。

等待Ruclion更新

E. Awesome Cipher Machine

未解决

F. Problem on Group Trip

签到题,按题意做就行

G. Dungeon Trap

知识点

最短路

题目大意

给出$n \times m$的地图,地图上有两个格子为分别为A和B,其他的格子中为$0 \dots 9$的数字,格子中数字为$0$表示该格子不能走。我们每次可以取出一个格子中的数(相应格子中的数会变为0),直到A与B不再联通后就不能再取了,问最后我们能取出的数字的和最大为多少。

做法

我们考虑最后剩余的数字和,题意相当于要使剩余的格子中的数字最小,也就是找一条从A到B的路径,使得该路径上的数字和减去该路径上的数字的最大值最小。由于每个格子上的数字不超过$9$,我们可以枚举最大值是几,之后再找出满足最大值为我们枚举的值的从A到B的最短路。为了找出这样的最短路,我们需要从A和B分别求一遍最大值不超过我们枚举的值的单源最短路,之后再将它们合并。

H. Harvest Season

未解决

I. National Disaster

J. Alien Abduction 3

未解决

K. Amplified Energy

知识点

dp + log优化

题目大意

给出n个分数组成的数列,再给出m个单独的分数,我们要从中挑出一段连续的数列,可以选择用m个单独的分数来替换其中的某几个分数(每个数只能用一次),要求替换后的数列的乘积最大,输出方案。

做法

经典的dp题目。注意n个数相乘可能会太大,由于不要求输出最大值,我们可以采用取log的方式来优化。

L. Summation and Divisor

知识点

性质

题目大意

给出$n$行,每行$m_i$个数,我们从每行中取出一个数,把它们加起来,则一共有$\prod m_i$种情况,我们要求所有情况的最大公约数

做法

我们最开始想枚举所有的情况来计算最大公约数,但是发现情况数太多,根本枚举不完。后来想到了化为判定问题的解法:我们先随便找出一个和,那么最终结果一定在这个和的约数中,因此我们只需枚举它的约数,再判定即可。

判定的方法大概为:首先,每一行模当前数的余数必须一样,其次,每行的模当前数的余数的和必须能被当前数整除。