2017-Sp338-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
== 流水账 ==
=== chenjb ===
=== oipotato ===
=== subconscious ===
== 题解 ==
* A:暴搜。
* B:f[0/1/2]表示要父亲点亮,父亲自己会亮但不会点我,我去点父亲三种情况,直接转移。
* C:n^3^枚举判定。
* D:按题意模拟。
* E:令a[1]=-1,a[2..1999]=s,则s*1998+k=(s-1)*1999,解出来得到s的取值,不断贪心减去min(s,1000000)放置即可。
* F:设gcd的质因子个数为m,转化成每个人有至多2^m^种贡献方式,注意到答案涉及的人数不超过m,所以对于每种贡献方式只保留e最小的m个人即可,注意预处理的时候需要把本质相同的人一起处理。
* G:考虑记忆化搜索,把图跑一遍传递闭包后进行hash,每个点的hash值是后继hash值的集合hash值,还有自己的出度入度相关的函数,整张图的hash值是所有点的集合hash,大概只有8000+状态。
* H:枚举n*n%i==0,则1/(n+i)+1/(n+n*n/i)=1/n,更新答案即可。
* I:一开始先取出最大的X,如果不止一个就无解,否则这个值就是最大值,然后搜索每次取出当前最大的X,如果不止两个就无解,如果只有一个就枚举是跟0的差还是最大值的差,如果是两个的话,就两边各有一个,注意特判和0差x跟和最大值差x相等的情况。
* J:枚举,bitset优化。
* K:合并果子裸题。
* L:求出凸包,如果凸包点数为3,则枚举剩下一个点,否则枚举a和c两个点,b和d随着c移动单调不减,更新答案即可。
* M:取出质因子,计算每种质因子的数量,剩下的拿走即可,最后crt合并。
流水账
chenjb
oipotato
subconscious
题解
- A:暴搜。
- B:f[0/1/2]表示要父亲点亮,父亲自己会亮但不会点我,我去点父亲三种情况,直接转移。
- C:n3枚举判定。
- D:按题意模拟。
- E:令a[1]=-1,a[2..1999]=s,则s*1998+k=(s-1)*1999,解出来得到s的取值,不断贪心减去min(s,1000000)放置即可。
- F:设gcd的质因子个数为m,转化成每个人有至多2m种贡献方式,注意到答案涉及的人数不超过m,所以对于每种贡献方式只保留e最小的m个人即可,注意预处理的时候需要把本质相同的人一起处理。
- G:考虑记忆化搜索,把图跑一遍传递闭包后进行hash,每个点的hash值是后继hash值的集合hash值,还有自己的出度入度相关的函数,整张图的hash值是所有点的集合hash,大概只有8000+状态。
- H:枚举n*n%i==0,则1/(n+i)+1/(n+n*n/i)=1/n,更新答案即可。
- I:一开始先取出最大的X,如果不止一个就无解,否则这个值就是最大值,然后搜索每次取出当前最大的X,如果不止两个就无解,如果只有一个就枚举是跟0的差还是最大值的差,如果是两个的话,就两边各有一个,注意特判和0差x跟和最大值差x相等的情况。
- J:枚举,bitset优化。
- K:合并果子裸题。
- L:求出凸包,如果凸包点数为3,则枚举剩下一个点,否则枚举a和c两个点,b和d随着c移动单调不减,更新答案即可。
- M:取出质因子,计算每种质因子的数量,剩下的拿走即可,最后crt合并。