tg 79 solution
T1
whk
好题
首先如果我们知道\(x,y\)是多少(模意义即可)
那么这题已经切了
然后这个的形式是一个二元二次方程组
考虑降次:
一个来自套路whk
的
\((x-y)^2=(x+y)^2-4\cdot x\cdot y\)
于是我们可以顺利求出\((x-y)^2\)
剩下的东西,求稳可以做个二次剩余,
时间复杂度\(O(\sqrt{n})\)
不会二次剩余?直接枚举一个数的平方在模意义下相等即可
T2
首先我们可以暴力枚举每个三元环
然后我们考虑用bitset
的位运算优化这个东西
具体的,造数据的时候用bitset
代替bool
的邻接矩阵
然后枚举两个点
如果两点连边类型是1
就是两个bitset
按位与,算个count()
否则就是按位或,用n-2
减去count()
如果bitset
一次位运算不是\(O(\frac{len}{\omega})\),那么您就切了
不然的话,您会发现这个看上去像\(O(n^2)\)的东西时间复杂度是错的
不过当\(n=2000\)的时候,它的表现和\(O(n^2\log n)\)一样
但是同时,我们会发现正着做时间复杂度也就这样了
既然正着不行就反着
但是直接统计所有异色三元环和上述做法没有区别
然后就会发现,事实上根本把它们区分开来的是,
有没有一个顶点\(x\)两条异色边,这两条边的一个公共顶点\(x\)
然后统计这个东西的数目,显然对于每个点来说就是黑边数乘白边数
加法原理合并,一个异色三元环总共有两个这种东西,除个\(2\)
然后直接用\(C_{n}^{3}\)减一下就行了
时间复杂度\(O(n^2),\)瓶颈在于读入和处理每条边上
T3
注:
如果没做过这个题不知道怎么想到建图的
首先看到这题你考虑\(DP\)了吗?
如果考虑\(DP\)了没推出来考虑建图了吗?
没有的话看这个
如果没做过这个题,可以先去看看
然后挂一下之前快场的题解,这个题用到\(T1\)的证明
同样考虑那个题的构造方式,把行列看成一张二分图
左部点\(x\)表示行,右部点\(y\)表示列,连边\((x,y)\)表示这个格子是黑的
套用那个题的结论,我们发现:
如果所有的边成黑的,那么我们只需要让整张图连通
把边连出来跑最小生成树即可
为啥accoders
跑个\(n=2.5\cdot 10^6\)的\(O(n\log n)\)还tmd要死要活的?
笑死我了,我whk
集训的时候出题时限\(1s\)标算\(O(n\log n)\)让人做\(n=3e6\)
T4
不会,看了题解还是不会