7.15模拟赛总结
Posted Flame♡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.15模拟赛总结相关的知识,希望对你有一定的参考价值。
好 好 感觉最近自己确实是逐渐焦虑化
甚至家里的刘老师过来跟我循循善诱)觉得我是不是魔怔了有点
我:嘎
难蚌,感觉很累,感觉就是精神状态快撑不住了
时间安排
8.00-10.30
先往字符串方向想了一会T1 感觉没什么结果 然后看看T2 也不会 最后开始做貌似最可做的T3 (我怎么感觉我见过这个题)
然后打了一个假做法(第二短路) 想了一会打了一个费用流
10.30-11.20
又想了一会 写了个T1 的暴力
11.20-11.50
写了T2 的暴力 中间没法去重 想了想套了个hash 想打部分分 但又不知道多测怎么写判断sub
11.50-12.40
吃了点东西 垂死病中惊坐起 打了个T2 的菊花
题目分析
T1
纯暴力枚举+三进制hash
upd
考虑因为只有01 ,然后考虑从 l e n 1 , l e n 2 len1,len2 len1,len2 变成 l e n 1 + 1 , l e n 2 − 1 len1+1,len2-1 len1+1,len2−1 答案会增加当且仅当 s [ l e n 1 + 1 ] ! = t [ l e n 2 ] s[len1+1]!=t[len2] s[len1+1]!=t[len2]
而且考虑 改变的位置是依次向后的 所以同一长度的一定不会重复
因此 a n s = ( s 0 + 1 ) ∗ ( t 1 + 1 ) + ( s 1 + 1 ) ∗ ( t 0 + 1 ) − 1 ans=(s0+1)*(t1+1)+(s1+1)*(t0+1)-1 ans=(s0+1)∗(t1+1)+(s1+1)∗(t0+1)−1
然后考虑点积 我不是很懂 明天学一下
T2
不懂捏 但起码把暴力打出来了
upd
首先按照连边搞出一个二分图然后黑白染色 假设我们知道原树 那么我们会发现 二分图形成的两个连通块是同构的,而且染色情况相同
(考虑从右边第一个点染黑,然后黑白交替染色 再挑左边第一个没被选的点染黑,然后黑白交替然色)
因此相当于我们要确定两件事: 在两个连通块里的右部点 对应另一个连通块里的左部点的编号是什么
又因为我们知道 两个连通块最后需要同构
我们把两个连通块分别叫做 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x1,y1),(x2,y2) (x1,y1),(x2,y2) 那么如果上述的形式化表述就是 ( g ( x 1 ) , y 1 ) = ( x 2 , f ( y 2 ) ) = > ( g ( x 1 ) , f − ( y 1 ) ) = ( x 2 , y 2 ) (g(x1),y1)=(x2,f(y2))=>(g(x1),f^-(y1))=(x2,y2) (g(x1),y1)=(x2,f(y2))=>(g(x1),f−(y1))=(x2,y2)
上面的意思也就是 如果我们能对一个集合确定保证边相同的黑白染色方法 那么我们就一定能通过某种映射方式 得到另一个集合
因此 我们将重心提出来之后(之所以提重心 是因为重心是唯一确定的(只需要让一个连通块里的确定点对上另一个连通块里的不确定点就行,但你没法确定比如1号点在另一个连通块里对应什么)
然后只要满足 有编号限制的 黑白染色同构就好
不好表述 具体看代码
T3
费用流 tarjan论文题
upd
不太好的地方是没注意到30分档可以支配树 qwq
以上是关于7.15模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章