[杂谈] 日报 D21
哎好摆啊 .
周六研究了一天自动机 . 周日坐了梦熊大牢 .
今天来处理一下核桃平台的三道题吧 . 题都还行 .
T1. a酱的仙人掌
求仙人掌上所有路径长度对 \(p\) 取模的和 , 在对 \(p\) 取模 .
其实真不难 , 有沙皮没看出直接正常求所有路径长度取模就行了 , 在苦哈哈地合并取模后长度 .
然后考虑怎么求 , 首先可以把环内部路径的求出来 , 然后对每条边求环外有多少路径经过它 , 用圆方树换根维护即可 .
T1 扩展
设定 \(p\le 10^5\) 时 , 还可以设定成所有路径长度对 \(p\) 取模的和 , 注意最终答案不取模 ( 或者对不是 \(p\) 的大质数取模 ) .
这东西在树上可以用边分治或者启发式合并来处理 , 核心就是把两个深度数组合并求所有路径长度 , 让一边全贡献 , 另一边假设是 \(x\) , 贡献个数取决于对边 \(\le p-x\) 的个数 . 用树状数组就可以维护 .
在仙人掌上不太好处理 , 不太会 .
T2.b酱的补习班
贪心题创人能力一流 .
大概思路就是反悔贪心 , 按成绩顺序两两加入 , 不断反悔贪心地把左边的学生变成老师 .
为了模拟学生没有找到老师 , 可以认为左端有任意多的 \(-k\) 价值的老师 .
最后贪心地把从学生变老师变优的翻转过来 .
但是这样会少情况 . 主要问题就是在不一次匹配两个的情况下 , 单方面翻转一个和 \(-k\) 匹配学生 , 匹配本身的贡献去掉了 , 但左边匹配的 \(-k\) 仍然留在了贡献里 , 相当于多减了一个 \(k\) .
发现这种错误翻转最多发生一次 , 因为一旦发生两次 , 后一个在加入时应该通过前一个翻转来匹配 , 这时匹配的是正常老师 , 后一个翻转也不构成问题 .
所以再特判一下有一次错误翻转的就行了 . 即钦定一个学生和 \(-k\) 匹配 . 我们让第一个匹配即可 , 剩下的仍然套用两两加入 , 这样就可以保证后面的不会翻转与 \(-k\) 匹配的学生 .
事实上直到 D22 上午才把这里想通 , 不过内容仍然整合到这里 .
T3.c酱的答辩
看起来挺难的 , 其实还好 .
首先题意可以转化为整体 \(+1\) , 然后取两对不同的 , 距离为 \(2\) 的点对 \(-1\) .
然后对 \(5\) 种点对分别求出取的次数 .
现在的限制是每次不能取相同 , 用容斥解决 .
用 NTT 优化一下就能过了 .

浙公网安备 33010602011771号