摘要: 本来想按照日期写的,但是考炸了。 到考场,终于输入对了密码。 我天,怎么这个 Dev-c++ 是英文的。 这个补全括号在哪里调? 找了一会儿没找到这辈子也是有了。 先看 T1 直接秒。 完美开局,直接开 T2。 这不是水题吗,只有 \(m=2,2n-2,2n-1\) 的情况。 写。 怎么大样例过不了 阅读全文
posted @ 2025-12-06 15:39 huhangqi 阅读(19) 评论(0) 推荐(1)
摘要: 初赛 9.19 被CPP强行提早一天会学校,遂不爽。 被猫学长投喂了麻薯,拜谢猫学长%%%。 做了2020年真题,90.5pts,赢。 晚上整个寝室楼都只有OIer,为什么其它竞赛一个赛季那么短? 9.20 因为学校压根就没什么人,所以七点起来也是吃上了早饭。 早上本来是要写19年初赛的,但是早上刚 阅读全文
posted @ 2025-12-06 15:38 huhangqi 阅读(9) 评论(0) 推荐(0)
摘要: 定义 强联通分量:在有向图中任意两个节点连通的有向图(SCC) 点双连通分量:删除任意节点仍然连通(v-DCC) 边双连通分量:删除任意边仍然连通(e-DCC) 割点:删除这个点以后图的连通性会发生改变的点 桥:删除这条边后图的连通性会发生改变的边 Tarjan Tarjan 算法可以求出上面的所有 阅读全文
posted @ 2025-11-28 09:51 huhangqi 阅读(27) 评论(0) 推荐(0)
摘要: 常规莫队 莫队用来处理一系列离线问题,可以在较短时间内移动一步区间的操作可以使用莫队来解决。 时间复杂度 传统的莫队只需要解决区间上的问题,因此只包含左端点和右端点,一般是按照 \(\sqrt n\) 的块长,以 \(l\) 所在的块为第一关键字,以 \(r\) 为第二关键字。 这样在 \(O(1) 阅读全文
posted @ 2025-11-28 09:39 huhangqi 阅读(5) 评论(0) 推荐(0)
摘要: 洛谷 根据常规的动态规划思路,我们可以在状态中记录 \(dp_{i,j,k}\) 表示目前时间为 \(i\),在教室 \(j\),\(k\) 表示到达另一个教室时放的是否之前已经看过了时看到的最大数量。 但是时间这一维很大,不可能记在状态里,并且由于换教室需要时间,所以很难除去没有用的时间。 那么就 阅读全文
posted @ 2026-02-05 10:17 huhangqi 阅读(5) 评论(0) 推荐(0)
摘要: 点击查看题目 内存限制:128 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 小Z是个路痴。有一天小Z迷路了,此时小Z到家有 n 个单位长度。小Z可以进行若干次行动,每次行动小Z有 \(\frac 1 2\) 的概率向家靠近一个单位长度,有 \(\fr 阅读全文
posted @ 2026-02-03 20:36 huhangqi 阅读(8) 评论(0) 推荐(0)
摘要: 洛谷 看到这个题目,很明显可以二分答案。 考虑二分长度后怎么检验是否可行。 最简单的贪心思路就是直接从左到右枚举,如果左边有就向左边,否则向右边。 但是这样显然有错误,有时会存在左边的一个向左,右边的一个也向左,但是右边的也把左边所要覆盖的包含了,那么左边的如果向右就可能能够覆盖更多了。 显然局部最 阅读全文
posted @ 2026-02-01 21:46 huhangqi 阅读(4) 评论(0) 推荐(0)
摘要: 洛谷 题目要求找到哪些没有撞的。 考虑如何计算两个战舰是否会相撞。 如果两个方向分别向南北方向那么需要满足 \(x\) 坐标相等。 两个相遇时消耗的时间为两个的 \(y\) 坐标差值的一半(简单的相遇问题)。 东西方向同理可得。 然后考虑如果一个向北,一个向东,那么怎么判断是否会相遇。 我们先假设相 阅读全文
posted @ 2026-02-01 20:00 huhangqi 阅读(4) 评论(0) 推荐(0)
摘要: 洛谷 代码比较复杂,但是实际上所有操作难度其实都不是很高。 首先考虑操作 \(0\) 怎么做,不难发现我们其实就是需要把这个位置旁边且中间没有高度大于 \(h\) 的地方的高度都设置为 \(h\)。 那么就需要先找到修改的范围,然后进行区间修改。 显然可以使用线段树,在线段树上每个节点维护墙的高度, 阅读全文
posted @ 2026-01-01 13:10 huhangqi 阅读(7) 评论(0) 推荐(0)
摘要: 洛谷 题目要求我们求出至少有 \(k\) 个不同颜色的概率。 处理概率问题很容易想到 dp 处理,并且问题中的 \(n\) 很小,但是转移次数 \(t\) 很大,明显是一个矩阵乘法优化 dp 的问题。 那么方法有了就可以考虑转移式了。 如果按照常规的思路,以 \(dp_i\) 表示包含 \(i\) 阅读全文
posted @ 2025-12-07 13:09 huhangqi 阅读(10) 评论(0) 推荐(0)
摘要: 洛谷 首先进行分类讨论。 对于每个右上角的点,为了不让箭穿过箭靶,必须分配一只向下射的奶牛,即斜率为负数的奶牛。 右下角的点同理,只能选择斜率为正数的点。 对于左上角左下角,不管斜率为正还是负都可以射到。 那么无解条件明显就是斜率为正的和斜率为负的其中有一个不到 \(n\)。 但是我们的高度会受到射 阅读全文
posted @ 2025-12-07 13:07 huhangqi 阅读(3) 评论(0) 推荐(0)
摘要: 洛谷 看到 \(1\le N\le 40\) 甚至部分分 \(N\le 20\) 而且只有选和不选两种情况,这不是折半是什么? 那么直接考虑最板子的折半,前面一半从起点直接暴力搜索是否选择,得到最后的位置,另一半从终点往回走,最后统计是否有多少相等的数量即可。 但是分析一下时间复杂度,还是比较极限的 阅读全文
posted @ 2025-12-07 13:06 huhangqi 阅读(5) 评论(0) 推荐(0)
摘要: 洛谷 发现字母的范围比较小,但是也没有小多少,那么多半是需要对字母组合求解。 第一想法就是给计入的字母状压,确认是否相同。 但是字符串长度又太长了,并且不好优化,只能放弃。 那么该怎么组合? 我们发现影响两个字符串在选择这几个字符后的串是否相等需要看两点: 字符的数量 不同字符之间的位置关系 第一个 阅读全文
posted @ 2025-12-07 13:05 huhangqi 阅读(7) 评论(0) 推荐(0)
摘要: 洛谷 先考虑推导式子。 设我们选择的奶牛为 \(i\),选择的苹果是 \(j\)。 那么可以得到式子: \[|x_i-x_j|\le t_j-t_i \]直接拆掉绝对值,因为绝对值会取较大的值,所以不需要考虑二者大小关系的影响,然后即可推得两式: \[x_i+t_i\le t_j+x_j \]\[t 阅读全文
posted @ 2025-12-07 13:03 huhangqi 阅读(6) 评论(0) 推荐(0)