ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

省选模拟5

2021-01-20 07:35:44  阅读:206  来源: 互联网

标签:gcd 省选 路径 构造 此时 奇环 模拟 dis


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有