ZR提高失恋测2(9.7)
ZR提高失恋测2(9.7)
网址http://www.zhengruioi.com/contest/392
版权原因,不放题面
A
首先,我们发现对于匹配串\(s\)中所有满足\(s_i \not = s_{i + 1}\)的\(i\)
那么\(i\)和\(i + 1\)之中至少要一个点被匹配,这应该是比较显然的
如果不这样肯定不满足条件
我们首先考虑暴力匹配,能匹配就匹配,这样可以得到一组字典序最小的解法
但是,这样直接填出来的答案很可能是不对的
考虑怎么把它给变对
这样就要用到开头所说的东西
我们从后向前去枚举满足\(s_i \not = s_{i + 1}\)的\(i\)
这两个位置肯定是要被覆盖一个的
我们就看看我们当前匹配的最后一个是\(0\)还是\(1\),放到对应的位置上
如果枚举的过程中遇到了已经匹配到的点,说明我们存在一种方式把前面和后面接起来
但到最后我们发现无论怎样也无法碰到匹配的点,说明无解
代码
B
感谢xtq大佬的耐心讲解Orz
首先我们考虑一个比较naive的做法
二分答案,拆点,一个点拆成\(2 \times mid\)个点
第\((0/1,i,j)\)个点表示能否在连续经过\(j\)条颜色为\(0/1\)的边之后到达\(i\)点
直接建图bfs判断连通性即可
时间复杂度为\(\Theta(n^2log n)\)
我们考虑怎么优化这个东西,一个比较直接的思路是倍增优化建图
这样加上二分的时间复杂度为\(\Theta(nlog^2 n)\)
但是由于超大常数+我不会写无法通过100%的数据
考虑如何去优化这一个过程
我们看看我们暴力在干嘛
就是寻找所有在\(mid\)对应颜色步数范围内找到所有能走到的点,并且尝试变换颜色
上面的算法之所以慢,是因为点数有点多,同一个点因为状态不同可能会被遍历多次
这显然有些浪费
因为我们只关心不同颜色的边之间的转移,相同颜色的边我们只关心能否在范围内到达.
由于每个点都存在唯一后继
所以我们用并查集维护从当前点向后跳相同颜色的边跳到第一个未被访问的点的前一个点
之后由于还要维护步数来确定mid的限制,所以我们要使用带权并查集
我们每次都暴力去跳到当前的根的下一个节点然后判断步数,之后尝试把这个点的相反颜色入队.
每个点只能由相反颜色扩展过来,并且只会入队一次.
但是很可能会有环
我们发现我们尝试跳一步到达的集合的根就是他自己,说明我们跳完了环,直接退出循环就好了
代码
C
谢谢smy不厌烦的指导我才A掉了这道题目,我永远喜欢smy
神仙常数题
首先,由于\(w <= 10^6\)任何权值的不同的质因子的个数不会超过\(7\)
之后发现我们直接找最小满足条件的\(l\)比较难,我们寻找最大的不满足条件的\(l'\)
那么则有\(l = l' + 1\)
也就是说我们现在问题转化成了找到最长的经过\((u,v)\)的gcd不为\(1\)的路径
这东西貌似也不大好直接求
我们设\((u,v)\)之间的gcd为\(g\)(这一部分可以通过倍增得出)
存在
\[ g = p_1^{k_1}\times p_2^{k_2}\times \dots p_n^{k_n} \]
我们想,一条经过$(u, v) $ 路径 \(gcd\) 不为 \(1\),必须要满足他至少存在一个相同的素因子
所以我们便有了一个想法,对于每个质因子,我们只考虑所有整除这个质因子的边
然后我们可以得到一颗森林,对这个森林跑一边树形DP
设\(d_{i, j}\)表示点\(i\)在只考虑第\(j\)个素因子的贡献时,最大向下的延伸长度
设\(d'_{i,j}\)表示点\(i\)在只考虑第\(j\)个素因子的贡献时,最大向父亲的延伸长度
则两个的必要性应该比较明显
我们还要设\(d''_{i,j}\)表示点\(i\)在只考虑第\(j\)个素因子时,次大向下延伸长度(不能和最大存在于同一个子树中)
这三个的必要性下面都会讲
最回到\((u,v)\)
我们发现有贡献的只有\(g\)的质因子(\(g\)的定义见上面)
我们就枚举它的所有质因子,然后这个\(l'\)就是每个质因子的贡献的\(max\)
考虑一个质因子\(p\)
我们考虑两种情况
\(1\):\((u,v)\)不是祖孙关系
也就是这个样子
(有点丑不要介意)
很明显我们只能在\((u,v )\)的子树中寻找答案
也会是\(d_{u,p} + d_{v,p}\)
这种情况比较简单
\(2\) \(u\)和\(v\)存在祖孙关系,我们假设\(u\)是\(v\)的祖先
这时候我们就不能像上面那样直接算子树内的,因为他可能出现这种情况
这就是最长路径的贡献来自同一子树
这也就是我们要记录\(d'\)和\(d''\)的原因
首先分析\(d_{v.p}\)肯有贡献
\(u\)的贡献实质上是扣去\(v\)所在的\(u\)的子树剩下的部分的最大值
也就是\(\max(d'_{u,p},x)\)
其中\(x\)的贡献是,如果\(u\)的最长链的贡献与\(v\)在同一子树,就是次长链的贡献,负责就是最长链的贡献,
将两部分贡献合并就是总贡献
另外无解怎么判断
如果经过\((u,v)\)的最长路径正好等于\(l'\),肯定无解
另外\(dp\)的时候由于每条边最多只会被计算\(7\)次贡献,所以\(dp\)数组开\(map\)就可以避免MLE
另外要将素因子放到第二维去维护,可以大大减少log的常数
代码
转载于:https://www.cnblogs.com/wyxdrqc/p/11502358.html
ZR提高失恋测2(9.7)相关推荐
- 告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐
一.背景 很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布. 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试. 但是编写单元测试又比较浪 ...
- 融资2.1亿商汤领投,他要用VR+AR解决无人驾驶的路测难题
靠房地产VR起家的51VR,在将VR横向扩展到汽车.游戏.教育领域后,51VR创始人李熠对AI科技大本营透露,刚刚完成的2.1亿融资,将主要用于发力"用VR训练无人驾驶",这将是每 ...
- 独家 | 融资2.1亿商汤领投,他要用VR+AR解决无人驾驶的路测难题
靠房地产VR起家的51VR,在将VR横向扩展到汽车.游戏.教育领域后,51VR创始人李熠对AI科技大本营独家透露,刚刚完成的2.1亿融资,将主要用于发力"用VR训练无人驾驶",这将 ...
- 数字测图原理与方法的实习日志_【技术】消费级无人机倾斜摄影测量1:500测图方法及精度研究...
摘要:针对多镜头测绘级无人机价格昂贵.技术门槛较高的问题,本文提出利用消费级无人机获取的倾斜影像制作大比例尺地形图的方法.该方法运用消费级单镜头无人机,在RTK(real-timekinematic) ...
- 使用 Cobertura 和反射机制提高 Java 单元测试中的代码覆盖率
本文将介绍两种开发实践,用于提高 Java 单元测试中的代码覆盖率.代码覆盖率 = (被测代码 / 代码总数)* 100%.提高被测代码数量或降低代码总数,均可达到提高代码覆盖率的效果.在本文中,您将 ...
- IBM技术论坛:使用 Cobertura 和反射机制提高单元测试中的代码覆盖率
引言 单元测试是软件开发过程中重要的质量保证环节.单元测试可以减少代码中潜在的错误,使缺陷更早地被发现,从而降低了软件的维护成本.软件代码的质量由单元测试来保证,而单元测试自身的质量与效率问题也不容忽 ...
- 一个神奇的测试_被套住就要说真话!《神奇女侠》的作者真的发明过测谎仪
如果在街上随机做一个调查,题目为"你最不能忍受身边人的行为是什么?"小编相信,很多人的答案会是--说谎. "说谎的人,要吞一千根针--"发毒誓也许是最原始的一种 ...
- 360众测重装上阵,创新服务模式重塑众测新业态
2020年全球疫情蔓延,越来越多企业转战线上办公,互联网边界进一步拓宽的同时,随之而来的网络威胁也在不断增加. 在网络空间对抗日益军事化的国际形势下,网络安全已上升至国家战略层面.而漏洞是网络安全威胁 ...
- 阿里云盘内测申请_阿里云网盘公测预约开始了,现在申请还送2个T的空间!
在前段时间,阿里云官宣将推出阿里云网盘:据说其上传下载不限速,而且免登录免客户端下载. 也许是大家受够了百度网盘的一家独大(尤其是几K的下载速度),这次阿里云网盘的推出尤其是一系列的功能更是受到了广大 ...
- 1.3 测控电路的信号类型、测控电路的类型与组成、测控电路的发展趋势
笔者电子信息专业硕士毕业,获得过多次电子设计大赛.大学生智能车.数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究.对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同 ...
最新文章
- 如何识别能把桥压塌的大车?快看!能救命!
- 香港中文大学Center for Gut Microbiota Research招聘启事
- mysql error 1231_解决ERROR 1231 (42000): Variable 'time_zone' can't
- 团队-团队编程项目作业名称-需求分析
- python settings模块导入不了_python settings 中通过字符串导入模块
- 飞鸽改变您的互联网生活
- 消息队列 ActiveMQ 、RocketMQ 、RabbitMQ 和 Kafka 如何选择?
- CVPR2005【行人检测】HOG+SVM用于人体检测的梯度方向直方图
- 语义分割之OCR的评判标准
- efficientdet-pytorch训练自己的数据集
- 【计算机网络】第一部分 概述(1) 数据通信和网络绪论
- Axure RP9 的元件库
- VirtualBox下安装Windows Server 2008
- mac charles4.0.2免费破解版安装
- OSChina 周六乱弹 —— 快上车,司机调休了
- LIO-SAM学习与运行测试数据集
- html玫瑰花ui,玫瑰花小制作分享-JavaScript(七夕专属浪漫)
- numpy_abs和fabs
- Unity 3D模型展示之控制标注
- 网页里面的空格的代码怎么写
热门文章
- 计算机术语中cook,计算机中的cookie是什么意思
- 10通信端口感叹号_开源企业级微信小程序实时通信聊天室技术架构演练
- 管理感悟:软件公司不加班还搞什么软件
- 编码基本功:让测试人员报一个BUG,让其升级严重性,竟然束手无策
- 全网首发:WORD应该是布局绘制二合一
- 没有com.sun.tools.javac.main的解决办法
- gstreamer之RTSP Server test-mp4正确运行代码
- Dxg——python MicroPython 开发笔记整理分类合集【所有的相关记录,都整理在此】
- java关于排版的说法正确是_Java代码规范--排版,命名---以及一个例子
- 用友修改服务器名称,用友修改服务器地址