07 2023 档案
摘要:题很简单,一遍写对却比较困难。 犯的错误: - 预处理 时应该要处理到 ; - 去重的时候(reduce 函数)特判 。 ### 代码 ```cpp #include using namespace std; using ll=long
阅读全文
摘要:写到一半发现标签有二分图就不对劲了,题解区里都是欧拉回路。 然而我是随机化+模拟网络流!~~自豪~~ 首先可以先建模,观察同一种颜色,发现每一行或每一列的限制即为 。 然后套路地把横
阅读全文
摘要:妙妙题。 首先可以有一个 的 dp,但是显然不行。 但是,发现其中的大多数转移都浪费在自环上了,所以考虑不要这个东西。 这个 dp 一共有三种转移: 1. 左右端点一起向内移动一格; 2. 左端点或右端点单独移动; 3. 左右端点都不动。 所以考虑加一维 表示走了
阅读全文
摘要:思维 + dp。 如果像题意那样先放球再染色的话不是很好做。 所以考虑有 个白球, 种其他颜色的球各 个。 那么限制就是说对于每个前缀,白球的个数 其他颜色球的种数。 所以就可以设 为放了 个白球, 种颜色的 个球的
阅读全文
摘要:警告: - 注意区分【强连通分量】,【边双联通分量】,【点双连通分量】。 思考: - 之前没有做到过边双连通分量的拆解; - 一个边双联通分量可以看作一个基环上不断加一条链; - 注意,这里加的链首尾可以为同一个位置。 到这步代码就好弄了。 ### 代码 ```cpp #include using
阅读全文
摘要:思路不错。 首先考虑把每个机器人转化为 两个参数。 表示向左 步会进入左边的出口,向右 会进入右边的出口。 > 注:此时其他只能进入唯一的出口的机器人不影响答案,不考虑。 记 表示 号机器人是进入左边还是右边出口。 然后考虑
阅读全文
摘要:借鉴了一下 namelessgugugu 的想法,妙妙题。 [link](https://www.luogu.com.cn/blog/namelessgugugu/solution-cf1842g) 这个神奇工具的构造确实挺妙的,非常好的思维题,在此记录一下 ### 代码 ```cpp #inclu
阅读全文
摘要:计数好题。 首先对于每个连通块独立考虑,最后合并答案。 发现 点数超过 1 的强连通分量一定删不掉。 - 若连通块中存在 点数超过 1 的强连通分量 - tarjan 缩点之后,称这些点数超过 1 的强连通分量为关键点; - 那么两关键点之间的点也不能删; - 于是对于剩下的点直接 dp 即可,由于
阅读全文
摘要:dp 套 dp 一般有三种形式: - 暴力搜出一种东西的状态,发现数量不大,建出自动机开始跑; - 有关字符串的匹配问题,例如 kmp 或 AC 自动机上; - 有关 LIS/LCS 问题的可以使用一种特殊的内层 dp 优化状态。 前两个没什么好讲的,讲一下第三个。 ## LIS 记 为
阅读全文
摘要:赛时卡了很久,没想出来怎么做。 随便乱搞了个优先级队列,过拍直接走人,然后成为了唯一的 100 分,无语了。 完事后发现这样做确实是对的,而且好写,简单讲一下。 首先需要能够判断打两个怪 的优先级: - ,则优先攻击 较小的那个; -
阅读全文
摘要:[link](https://loj.ac/p/6160) 思维+容斥计数。 首先的转化比较妙,二分图转化为 的网格图染色。 > 与网络流的转化方向相反,值得注意。 然后发现两种颜色(红、蓝)如果独立染色,同一个格子可能会重复染色。 考虑容斥,式子很好列,直接容斥即可。 $$
阅读全文
摘要:> 法老找来的题,说是找了三道 其他模拟赛的 T4 拼成 T1~T3,另外搞了道 T4。 思维好题,但是放在 T1 有点搞心态,但是还好大样例够强,400 没挂。 > 然而 T3 大样例输出错了,浪费了我 0.5h,~~差评~~。 首先发现向左走之后向右走是一定不优的,所以最短路的情况只能先向右再向
阅读全文
摘要:[link](https://yundouxueyuan.com/contest/64ad2248301edd5a35fdba9d) > 总体评价:~~因为 K 了,所以好评,~~练一下思维蛮好的,质量不错 比赛 2.5h K 的。 ## #A. 诗人小 G 初进 OI 界 标准送分,输出 $\fr
阅读全文
摘要:在 NFLS 模拟赛上遇到的,赛后订正过的。 隔了蛮长时间的,总结一下。 - 首先转化为笛卡尔树上后缀前缀的问题。 - 然后考虑如何转移,发现转移形如 的形式。 - 可以直接线段树维护每个点的最优直线,在 update 的时候: - 如果 $f(
阅读全文
摘要:发现根节点一定是 ,所以考虑两边的子树深度,然后发现只需要考虑一段后缀或前缀的深度即可。 所以循环位移后,可以从中间往两边构建笛卡尔树,实时维护深度即可。 ### 代码 ```cpp #include using namespace std; using ll=long long; const
阅读全文
摘要:太久没见过启发式合并了,然后没想出做法。 首先笛卡尔树建出来。 然后直接枚举跨过 的长度为 的区间,RMQ 验证即可。 发现这样的区间个数不超过左右区间大小的较小值,时间复杂度:。 ### 代码 ```cpp #include u
阅读全文
摘要:> 随机排列的最长上升子序列长度的期望是 。 这个结论知道最好,不知道也问题不大,赛时随一个跑一下也行。 警告: - 一直考虑正着做,产生了思维定式 - 正难则反啊,反着做发现只需考虑第一次覆盖的数就行了。 - 接下来的贪心也没想到:序列中不应该出现不在 中的数
阅读全文
摘要:赛时想了很久,可能是比较久没做这样的经典状压枚举子集的 dp 题了。 > 赛时大样例输出是错的,调了 40min 对的代码没看出来哪里错,写个对拍拍不出来,结果是 cxr 题面里的模数写错了,最后改了数据…… - 正难则反,求反面的方案数,即【1,2能到达的点无交集】的方案数 - 设 表
阅读全文
摘要:### 解题思路 容易想到从小到大加数,维护每个点的子树大小。 可转化为维护每个点为 时的 区间。 然后需要写一个支持 【区间+1】、【区间取min】、单点加入、全局查询。 上个吉司机线段树即可。 ### 注意点 - 吉司机线段树下推 的标记的时候要注意 $f
阅读全文
摘要:很容易考虑到计算贡献。 > 该问题的关键在于——如何使得钥匙和宝箱的对应关系不算重 > Warning:有这样的二元对应关系,可以考虑一下转化为括号序列! 转化为括号序列之后,发现路径上括号串的对应关系能够预处理出来。 套个虚树和扫描线,就做完了。 ### 代码 ```cpp #include us
阅读全文
摘要:- 赛时想了 1.5h 没想出来做法,然后写了个随机化乱搞过了,有点侥幸。 ### 思路 赛时想到: - 答案上界为 。 需要进阶: - 变化超过 的数的个数 。 - 所以随机一个数,这个数变化不超过 的概率 $\g
阅读全文
摘要:需要保持: - 写代码前先仔细考虑一下细节,分类讨论清楚再开始码。 警告: - namespace 里面写了个 n,想调用全局 n 的时候没加 2*冒号。 思路大概就是分类讨论然后计数就完事了。 ### 代码 ```cpp #include using namespace std; using ll
阅读全文
摘要:>tarjan 多测的时候 dfn 数组要清空!!! >树剖多测的时候 son 数组要清空!!! > 点双 tarjan 时可用 vector 建边,边双时用 vector 需要无重边 本题直接建圆方树,然后答案就是关键点构成的虚树上非关键原点个数。 ### 代码 ```cpp #include u
阅读全文
摘要:赛时想写 60pts,结果 cxr 似乎少算了一点空间,导致我一直没把空间卡过去QWQ。 当时不会 dfs 求 topo 序,这里讲一下。 枚举所有非访问过的点依次 dfs,每次进行下列操作: - 找出 的一个未访问过的入点 ,调用 `dfs(u)`; - 找不到 的时候,把
阅读全文
摘要:做题时想出来的东西: - 时光倒流 做题时的思维定式: - 按照操作顺序,挨个算出拿几个数到最后 - 没有想到在原序列上进行区间 dp。 - 反复只想到从小到大划分区间,每个区间计算贡献,具有一定局限性 > 需要发现,在考虑不同的值的时候,选择哪些操作顺序是独立的 ### 代码 ```cpp #in
阅读全文
摘要:自己推性质的能力是真的差。 - 如果最后一个字符是 `A`,那么答案就是 `A`(分为全是 `A` 和存在 `B` 两种情况证明即可) - 否则如果最后一个字符是 `B`,检查是否会变为以 `A` 结尾 - 如果原串为 `AA...ABB...B` 的话,答案为 `B` - 否则最后的 `B` 会不
阅读全文
摘要:[link](https://www.luogu.com.cn/problem/CF1601F) 这里提供一种不用 meet in middle 的方法,速度比较可观。 > 模拟赛上场切了,但是数组不清空,爆成 50pts 了,QWQ #### 发现性质 开始简单的推一下式子。 $\sum (i-a
阅读全文
摘要:要点不多,记一下即可。 的对偶图记为 。 - 为连通图,若 联通,则 - 中的简单环对应着 中的极小割,(简单对应极小),利用该性质,可以把平面图上的最小割问题转化为对偶图上的最短路问题 - 平面图欧拉公式:$V-
阅读全文
摘要:[link](https://www.luogu.com.cn/problem/P6545) 思维好题。 - 找到结论,即包住所有点的充要条件 两次最短路的思想确实很妙。 > 结论:找到 到每个标记方格左上角的最短路,那么一定存在包住这些路径的最优解。 证明考虑反证,比较好证的。 #
阅读全文
摘要:> 本题转化为梯形面积就已经不是很好想了(赛时切掉,开心!) 进阶为静态区间查询。 使用不删除莫队+凸包合并 - 凸包合并就是把散块和整块的凸包合并 - 注意这里两个凸包的横坐标值域是无交的 - 于是可以使用二分套二分解决此问题 > 代码咕着,感觉非常难写
阅读全文
摘要:> 引用:这是一道非常棒的思维题,可以说没有用到任何高深的知识点,却极大地考验了做题人的思维能力和创造性。 本题分为两步。 - 根据线性规划对偶或贪心,转化题意。 - 对 根号分治,然后分别进行分治。 > 分治比较好想, 的根号分治比较难
阅读全文
摘要:有如下背包问题: - 种物品,体积为 ,价值为 ,不限量,要求选 件物品,且总体积为 ,求总价值的最大(小)值。 解决方法: - 不妨令 升序,首先先选 个 号物品,计算体积 ,然后每选一件物品,
阅读全文
摘要:[link](https://hydro.ac/d/bzoj/p/4766) 前置知识:Prufer 序列,二分图 别的题解都是直接给答案,没有比较易懂的思路。 首先,考虑 Prufer 序列,发现右边点删除一定会加入一个左边点,另一边类似。 且生成 Prufer 序列的最后一定会留下左右边各一个点
阅读全文
摘要:[link](http://211.140.156.254:2333/contest/387) ### T1 转化为 与 之间的斜率。 发现性质(省略),只需要计算相邻两个点之间的答案即可,用 set 就行了。 ### T2 先找性质,发现即为 $a,
阅读全文