5.6模拟赛总结
Posted Flame♡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.6模拟赛总结相关的知识,希望对你有一定的参考价值。
zzzzzz
蚊子 你坏事做尽,你猎食就算了,怎么吃的时候还要嗡嗡嗡啊qwq 就不能你安安静静吃,我安安静静睡么(恼)
时间安排
7.40-8.00
看题 感觉T1 ,3比较可做,T2不是特别有想法
8.00-10.00
推T1正解
10.00-10.30
写了T3的部分分
10.30-11.00
写了T1的部分分
11.00-12.00
又推了推T1,感觉时间不够冲正解想写个 k 2 k^2 k2, 最后发现idea假掉了(悲) 最后火急火燎十几分钟打了个暴力
题目分析
T1
首先 ∑ t = ∑ 到 达 点 i , 节 点 数 单 增 , 长 度 单 减 的 路 径 条 数 \\sum t=\\sum 到达点i,节点数单增,长度单减的路径条数 ∑t=∑到达点i,节点数单增,长度单减的路径条数
显然单词询问要做到复杂度 O ( k l o g n ) O(klogn) O(klogn) 左右
然后考虑一定不会向回走,所以应该是考虑区间覆盖
可以证明,从一个 a [ i ] a[i] a[i]走到的,对答案有贡献的点,是一个区间
然后就要考虑怎么弄出这些区间,感觉是可以二分的(貌似要确定两次边界再取min)
赛场上没有想出来完 呜呜
主要是考场上也有个细节不会处理 就是可能会有一个点 有两个位置可以同时到达它,并且长度,节点数都相同
update
其实建模已经对了 二分也对了 没想到的主要是二分之后那个节点的限制可以直接考虑左右区间,然后rmq,而且也属实是没考虑到log^2 一直感觉是神奇单log算法(恼)
就算带上那个细节也是能做的(题解里有) 只要考虑限制一下左边的更优就好了,细节就是二分边界
T2
不会,只会暴力,咕咕
暴力建出线段树模拟计算 咕咕
update
和考试时候的想法有一点类似,我考试的时候想到了维护 f [ i ] [ j ] f[i][j] f[i][j] 表示第 i i i 次操作时 j j j号节点上有多少棵线段树有值,然后发现下传之类的很难维护(其实就是少个 g [ j ] g[j] g[j]表示1- j j j节点里完全没有标记的方案书)
T3
n 2 n^2 n2做法: 抽出路径上的所有点,然后做树上差分,最后统计答案
update
考试里貌似想到了线段树合并,不过想的方向和这个略有出入…这个考虑dfs树的做法非常高妙,老实说和部分分的树上差分是有联系的(以及单独考虑每个点的思想)
以上是关于5.6模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章