2018.5.5-6 GDCPC2018广东省赛 6/10 Rank12 Au
开场各自读题。
Hong看了A推了一会没推出来就继续读题了
然后发现大家开始过A..就继续推了一会..还是没推出来..决定上机打个表..然后就找到规律了..就过了..
He想出了B..上机写了就过了..
Hong推出了F..上了就过了..
He想了个J的假算法..上机开始写..发现是假的..就下来了..开始想C
Hong想出了H..上了就过了..
He准备好C就上了..然后没过样例..
Hong上机打了一下毕达哥拉斯三元组的板子..打了个表..瞬间找到了规律..就过了E..
(甚至感觉..E的数据范围可以巨大..)
然后He过了C的样例..改了就交了..然后WA了..
然后三人对着C的代码Debug了1h..最后对拍发现..He把变量名zz和z打反了.......改了就过了..
Huang之前想出了I..但没什么时间了..但还是上机写了..
Hong和He一起推了一下D..建了个假图..把Huang赶下来了两次..最后都没写完..然后就GG了..
然后我们就6题滚了啊..
题解
A
打表发现 an = 2 * an-1 + 2 ^ (n - 2), a1 = 1, ans = n * an。上了个矩阵快速幂过的。
赛后发现可以拆成sigma (i ^ 2 - i + i)C.. 的形式..可以直接求出公式
签到题
B
暴力从每个点找环+树状数组+预处理因子
C
可持久化字典树
D
网络流。把所有点拆点入点出点之间连点价值的边,原图中的边出点向入点连无穷大边。由于原图是二分图,可以先对原图唯一的黑白染色。之后B1和B2的点若和染色结果不同,则源向点连点价值的边,否则向汇连等于点价值的边。跑最大流即可。
坑点是B1和B2有交集..交集的点必须删掉。
E
原题等价于寻找n使得 (n - 1) ^ 2 + n ^ 2为完全平方数,即寻找x与y相差1的勾股数。
用毕达哥拉斯三元组打表发现,以3.4.5为基不断乘B矩阵(全是正数的矩阵)可以得到所有满足如上条件的勾股数。这样的勾股数有20组左右。
求出来所有这样的勾股数暴力找即可。
数据范围可以扩大很多。
F
博弈。发现2是先手必败态,4是先手必胜态。手玩6、7、8、9之后发现,开始时每次切2出来,到4或5为止,获胜状态最多。
若n为奇数,概率为(n + 1) / 2 / n
若n为4k,概率为(n / 2 + 2) / n
若n为4k+2,概率为(n / 2 - 1) / n
G
H
DP。DP[i]表示到当前位置为止,和为i需要的最多元素个数,0<=i<=9。开始时,能加成9就尽量加成9,之后尽量加成8.....当DP[本次要加成的数]不为0,则记录次数并将DP清0。
复杂度O(10*10*n)
I
J
吐槽
还可以啊
就是本来打算全1A的来着..被Hels搞了啊..
过快点可能就7题了啊..
惨啊..
前面中山队真是无敌啊..
总结
Hong
前期出题还是有点慢啊..30min才想到打表啊..下次数学题先打表啊..
E应该早点上啊..下次是不是应该我的题想到直接上机啊..?反正基本5min过啊..这样罚时会少不少啊..
前期节奏还是有点慢啊..感觉应该果断3开啊
小目标下次2.5h过5题?
He
手不太稳,仍需多连续数据结构(长代码)的题,大型数据结构还不太会。
Huang