- 博客(3)
- 收藏
- 关注
原创 HHTC-2025团体程序设计天梯赛选拔赛题解
思路:通过模拟可以发现我可以把任何一本书插入到任何位置,比如假设有5本书,想把从上往下第2本书插到倒数第2本,那么只需要遍历这5本书,不是第2本的话就用左手辗转两下放到右侧书架,是第2本就先放在右手,直到遍历到倒数第2本后停止,此时把右手的第2本书放到左书架实现插入,再把暂存到右书架的书辗转一下依次放回左书架。这样我们就有了一个 O(nk) 的贪心暴力,因为每移栽一棵树需要将他做了贡献的区间需要种的树的数量减一。可以直接对每个点做一次 dfs,算出每个点可以到的最远的点,取最大值即可。
2025-03-19 16:21:17
1769
原创 怀化学院第十六届大学生计算机程序设计竞赛题解
因为 100...00 一定比 011...11 大,所以我们可以从高位开始往低位考虑这个问题:假设现在是第 i 位,那么是否能在所有区间中都找到一个数 Xi,它的第 i 位为 1只要能找到这个数 Xi,那么就一定比 i 后面的低位全为带来的收益都要大。那么我们如何找到这个数,并判断是否符合条件呢?(1)对于每个区间,找出从 L[i]开始的,第一个在第 i 位为 1 的数 X[i];(2)若某个 X[i] > R[i],则不合法,直接考虑下一个 i;
2024-09-05 21:50:35
1567
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅