摘要: Day -1 没要到假期作业/ll/ll/ll 只写了当天的作业。 感觉要寄。 Day 0 早上现跑到学校里要作业。结果还被保安撵回去写了假条 然后就是漫长的乘车之旅,从 \(8:30\) 一直到 \(16:00\)。 发现车上的人比我卷多了,个个都通宵写作业/kk 电脑在箱子里,不能写代码,有点难 阅读全文
posted @ 2024-02-28 15:30 Southern_Dynasty 阅读(21) 评论(1) 推荐(0) 编辑
摘要: 代码 请自行 Ctrl+F5 查找。 P1074 [NOIP2009 提高组] 靶形数独 考虑优化搜索顺序。 如果直接搜,理论复杂度为 \(9^{67}\),显然会 \(\textbf{TLE}\)。 增加剪枝,提前判断数独合法性,仍然会寄。 这个时候我们就需要优化搜索顺序了。 回想一下,平时做数独 阅读全文
posted @ 2024-02-28 15:30 Southern_Dynasty 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 考察点:STL 的熟练运用。 记:\(l_i\) 表示序列中不超过 \(a_i\) 的最大数,\(r_i\) 表示序列中超过 \(a_i\) 的最小数。 开一个 vector insert[N] 存储 \(a_i\) 后面插入的所有数字。 首先,我们使用一个 multiset s1 来存储相邻元素的 阅读全文
posted @ 2024-02-28 15:29 Southern_Dynasty 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 题单: 第一部分 第二部分 题解有时间就写,一般会咕。 P5691 [NOI2001] 方程的解数 简单的折半搜索。 直接搜索时间复杂度是 \(O(m^6)-O(m^6\log p_i)\) 的(快速幂),无法通过。 考虑优化,首先我们对上面的式子做一个变形: \[\sum_{i=1}^{n}k_i 阅读全文
posted @ 2024-02-28 15:26 Southern_Dynasty 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题单。 UPD:题单里的题 \(n=m\)。 数列分块入门一 看到区间修改 \(+\) 单点查询,考虑差分。 考虑分块维护差分数组。对于修改操作,就对 \(l\) 位置 \(+k\),\(r+1\) 位置 \(-k\);对于查询操作,查询 \([1,x]\) 的和即可。 时间复杂度 \(O(m\sq 阅读全文
posted @ 2024-02-28 15:25 Southern_Dynasty 阅读(19) 评论(0) 推荐(0) 编辑
摘要: E - 2xN Grid 题意 给你一个 \(2\times L\) 的网格,但是 \(L\) 很大,所以用以下形式压缩: 将同一个颜色的连续段视为一个整体,那么每一行就可以用若干个二元组 \((a_i,b_i)\) 表示,其中 \(a_i\) 为颜色,\(b_i\) 为连续段的长度。保证长度 \( 阅读全文
posted @ 2024-02-28 15:24 Southern_Dynasty 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 矩阵 https://www.luogu.com.cn/blog/531930/shou-xie-yi-ge-ju-zhen-lei。 P4159 [SCOI2009] 迷路 如果边权是 \(1\) 的话,答案就是邻接矩阵的 \(k\) 次方的第 \(1\) 行第 \(n\) 列。 这个题有边权且很 阅读全文
posted @ 2024-02-28 15:22 Southern_Dynasty 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 这个题 \(k\) 很小,我们考虑从 \(k\) 入手。 我们记 \[f(n,r)=\sum_{i=0}^{\infty}\binom{nk}{ik+r}\bmod p \]现在我们来介绍几个求和变形的技巧: 一、增加枚举量 把 \(f(n,r)\) 展开 \(k\) 次,得: \[f(n,r)=\ 阅读全文
posted @ 2024-02-28 15:22 Southern_Dynasty 阅读(13) 评论(0) 推荐(0) 编辑
摘要: A - N-choice question 太简单,直接放代码: #include<bits/stdc++.h> //#pragma GCC optimize("Ofast") #define gt getchar #define pt putchar #define y1 y233 //typed 阅读全文
posted @ 2024-02-28 15:21 Southern_Dynasty 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 网址 赛时得分 \(25+50+5+1=81\),rk 67,逊死了。 赛后发现 T1 爆搜 + 剪枝有 \(50\) 分,我【】【】。 总结:还是菜。 A. 等差数列 首先特判 \(n\le 4\) 的情况。此时答案必然为 Yes,只需要两两分组即可。 由于第一个数必然在其中一个等差数列内,不妨强 阅读全文
posted @ 2024-02-28 15:20 Southern_Dynasty 阅读(35) 评论(1) 推荐(0) 编辑
摘要: 题意:你有一张无向连通图,定义 \(d(s,t)\) 表示从 \(s\) 到 \(t\) 所有路径中最大边权的最小值。现在给你三个数 \(A_i,S_i,T_i\),让你求出当 \(A_i\) 这条边的边权 \(+1\) 时,\(d(S_i,T_i)\) 会增加多少。 首先考虑一下 \(A_j+1\ 阅读全文
posted @ 2024-02-28 15:19 Southern_Dynasty 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 首先我们考虑 \(v\) 固定怎么做。实际上就是 ARC111B。 考虑建图,对每个 \((a_i,b_i)\) 建一条无向边,那么问题就变成了:对于每条边都要选择它以及其连接的一个点,最大化选出的点数。 很明显可以对每个连通块分开考虑。 记当前连通块的点数为 \(V\),边数为 \(E\)。那么有 阅读全文
posted @ 2024-02-28 15:17 Southern_Dynasty 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 题单 P1082 [NOIP2012 提高组] 同余方程 整理一下式子,变为 \(ax+by=1\),exgcd 解之即可。 最小正整数解就 \((x\bmod b + b)\bmod b\) 即可。 时间复杂度 \(O(\log x)\),可以通过此题。 可以发现这题实质上就是求 \(x\) 的逆 阅读全文
posted @ 2024-02-28 15:17 Southern_Dynasty 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 区间 DP。 设 \(f_{l,r}\) 表示只考虑 \([l,r]\),先手得分减后手得分的最大值(并不关心谁是先手谁是后手),区间长度 \(len=r-l+1\)。 然后对三种情况分别讨论: 使用操作一,此时取掉左/右端点的部分先手后手互换,对答案的贡献为 \(\max(a_l-f_{l+1,r 阅读全文
posted @ 2024-02-28 15:16 Southern_Dynasty 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 两种做法。 一、最短路 题目要求区间数量最小。如果能建出图来,就可以转换为最短路问题。 具体地,我们从 \(l-1\to r\) 连一条长度为 \(1\) 的边,意味着要多经过 \((l-1,r]\) 这一个区间。这是左开右闭的形式。 现在还有一个问题:通过这种边我们只能到达区间的右端点,如果想向左 阅读全文
posted @ 2024-02-28 15:15 Southern_Dynasty 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 考虑分层图。 把图按速度分成 \(V\) 层,\(f_{i,j}\) 表示点 \(i\) 在第 \(j\) 层(速度为 \(j\))的编号。注意:这里的速度为 \(j\) 是指到达 \(i\) 那一条边的速度(\(i\) 为终点)。 考虑一种 naive 的建边方式: 首先,记当前点为 \(u\), 阅读全文
posted @ 2024-02-28 15:15 Southern_Dynasty 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 对给出的 \(n\) 个区间分块,设块长为 \(B\)。 每个块内计算每个位置的贡献(被覆盖次数)。具体地,记 \(f_{i,j}\) 表示第 \(i\) 个块第 \(j\) 个数被覆盖了多少次,这个可以用差分轻松维护。预处理复杂度 \(O(\frac{n^2}{B})\)。 现在考虑修改。记 \( 阅读全文
posted @ 2024-02-28 15:13 Southern_Dynasty 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 相当妙的题。 异或有个很好的性质,就是异或两次会抵消。这样我们只需要考虑出现次数为奇数的方案即可。 我们设 \(t_i\) 表示 \(a_i\) 的出现次数。那么这种方案的和 \(sum=\sum_{i=1}^{n}a_it_i\),出现次数为 \[\prod_{i=1}^{n}\binom{k-\ 阅读全文
posted @ 2024-02-28 15:13 Southern_Dynasty 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 前置知识 - Borůvka 算法 该算法用于求解最小生成树。 定义一次 “Borůvka 操作” 如下: 枚举所有不在连通块内的边。若一条边连接两个不同的连通块 \(x,y\),且这条边是连接 \(x,y\) 的边中权值最小的,那么就用这条边连接 \(x,y\),把 \(x,y\) 合并成一个连通 阅读全文
posted @ 2024-02-28 15:12 Southern_Dynasty 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 分成几个部分处理。 一、预处理每个点的最大尺寸 特殊的,令障碍物的最大尺寸为 \(0\)。 一个朴素的想法是二分。但这样是 \(O(n^2\log n)\) 的,太逊。 考虑把障碍全塞进一个队列里跑 bfs,这样可以求出每个点到一个障碍的最短路,显然这就是尺寸的一半(注意判一下不要超出边界)。 注意 阅读全文
posted @ 2024-02-28 15:08 Southern_Dynasty 阅读(21) 评论(0) 推荐(0) 编辑