省选模拟5
作者:互联网
A:序列
区间取max 区间加, 显然是吉司机线段树
与普通的题不同的地方在于要记录修改次数
这个东西只要每次pushdown的时候求一下最小值是在哪里转移过来的,然后把次数下放就好了
因为吉司机线段树只会区间把最小值改为另外一个值,所以是正确的
B:旅行计划
不是很能想到的构造题,直接给结论和构造
首先要知道扩展裴蜀定理
把一个联通块内所有边权除掉gcd
然后对于一次询问,让k除掉所有边权与它的gcd
此时如果k是奇数,一定可以构造出一组解使得\(mod k = 0\)
假定从u到v路径和为dis
对于u到v的路径,来回走k次是可行的,k次之后到达v的位置
此时走过的总路径为dis*k,mod k一定是0
关于为什么k除掉gcd以后仍然是对的
因为假定此时k为k/g为奇数
一次路径长度为dis, 显然仍然可以走k/g次
此时总路径长度为dis*k/g,因为dis/g是个整数,所以mod k = 0
现在考虑k为偶数的情况
首先一个结论是,一个回路一定可以构造出贡献为2
假设我们此时建出了dfs树,那么树上的每条边都可以走任意偶数次,遇到非树边也可以随便转
所以此时也就是\(2*k_1*dis_1 + 2*k_2*dis_2 + ...\)
这个式子满足一堆dis的gcd与k互质
根据裴蜀定理可以构造出贡献为2的回路
然后发现从u到v路径为偶数一定可以构造出答案为0的路径,因为可以不断走使得 \(2*次数+dis = k\)
另外一种构造出答案为0的路径是存在奇环,因为显然可以到达奇环再回来(奇环指环长度为奇数
这样中间的路径走了两次,奇环路径走了一次,此时贡献为\(len+2*距离\)
而len是个奇数,所以这样就把剩下要走的变成了偶数,又与上一个部分一样了
其它情况就是k与gcd的gcd了
C:Hack
网络流最小割可以保证每条边都被割
但是无法保证每条边只被割一次
把反向边建成INF就可以了
因为对于有环的情况,此时只割掉一个边是存在增广路的,所以就可以了
标签:gcd,省选,路径,构造,此时,奇环,模拟,dis 来源: https://www.cnblogs.com/2004-08-20/p/14300978.html