noip 以后 AT 题选录

contests

ARC 101

D - Median of Medians

首先中位数问题要想到二分
考虑验证,发现中位数的性质是大于中位数的个数不超过 1/2
那么把大于的设为 1 小于的设为 1,然后求出所有子段和即可
转化成前缀和用树状数组维护即可


ARC 102

D - All Your Paths are Different Lengths

很明显的二进制构造竟然没有想到……
二进制可以这样体现:节点 ii+1 连两条边,02i
发现这样拼凑会在 2n1 以上的部分不能漏掉
发现第 i 个和第 n 个节点的连边会产生 2i1 个连续值,那么把剩下的部分也二进制拆分即可

  • 从数据范围是 log 等方面对二进制敏感

E - Stop. Otherwise...

居然是个 dp……
一个非常神奇的观察是这样:首先投出一个大于 x 的值一定是不影响合法性的
那么不合法的组合一定是成对的,即 ixi
也就是说每对 ixi 中只能选一种
其中 xi=i 的情况需要特殊考虑
f[i][j] 表示考虑了 i 对选择了 j 个数的方案数
那么 f[i][j]=f[i1][j]+2k=1jf[i1][jk]
g[i][j] 表示考虑了 i 个没限制的数选择了 j 个的方案数
那么 g[i][j]=j=0kg[i1][jk]
合并时有 f[cnt1][i]f[cnt2][ni]
考虑最后对于 xi=i 的合并,f[cnt1][i]f[cnt2][ni1]


ARC 131

E - Christmas Wreath

又是做不出来的构造题……
首先对于三元环不是三种颜色的处理十分神奇:对于每一个点 i,连向 1i1 的边颜色都是相同的,这样任意一个三元环的两条边都是从最大的点出发的也就是相同颜色
于是变成了将 1n1 分配到 3 个组里使得每个组的和相等
首先 n%3==2 时无解,考虑其他情况的构造
可以采用随机化、dp 的方法
这里介绍纯构造:
可以手模出 n=6,7,9,10 的方案,而对于每一个 n,可以划分出:{n1,n6},{n2,n5},{n3,n4},然后递归到了 n6 的子问题,直到边界进行特判

posted @   y_cx  阅读(62)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示