昨晚宿舍也是出现两只广东大蟑螂,相当逆天
今天上午比赛也是60多分,想T2时以为自己想到了正解,结果只有4分,后面发现打的时候思路有漏洞,修改以后在洛谷上交也是超时了
今天只改了两道
T1 最大公约数

死去的记忆开始攻击我
早上赛时的时候想到了用前缀和优化,但后面遇到了一个求gcd之和的式子需要求解,虽然知道考察数论函数,但是这块内容已经忘得差不多了,只能打暴力+离线,骗了40
发现一篇比较好的题解,直接上链接
Link
欧拉函数
复习一下如何计算欧拉函数

T2 玉米田

赛事思路:很朴素的想法,对每个连通块分别求出方案数后,乘起来,就是最后答案,但是问题来了,每个连通块的方案数怎么求?比赛的时候我很简单的就看做将连通块中的点用染色的办法分成两部分,然后分别求组合数再加起来,但这就会没有考虑到如果相邻两个点距离很远,已经没有影响的情况
赛后优化(延续赛事思路):比赛的时候其实已经发现了这个小性质,如果将连通块相邻的两点连边,再求其补图,会发现事实上对于每个连通块,其方案数即其补图中完全子图的个数(包含0~k阶,k是补图的顶点个数),这点也容易证明,稍微思考一下不难发现
于是在下午改题的时候,就查了怎么求图中完全子图的个数的方法,发现了这样一篇文章
Link
在它基础上稍稍修改一下,添加建图的部分以及最后答案求和的部分就能得到一个近百行的代码(太长就不放了)
在洛谷上提交也是拿到70分

还是来看一下正解的做法吧
正解:状压dp
好吧,其实我也考虑过要不要写状压的,但找了半天关系没找到,就以为最后答案应该无法由递推得到,就放弃了这个想法,但事实上,是我太菜了

很猎奇的事情,在洛谷上交可以过,在OJ上交,改了一下数据规模后,报运行时错误,没救了:sweat_smile: