10 2021 档案

摘要:题解 将 a1,a2,,an 从小到大排序,若 an 加上了 x,显然让所有数最终都等于 an+x 是最优的。 所以就是求 i=1npopcount(x+anai) 的最小值。 对于所有 阅读全文
posted @ 2021-10-28 20:00 Alan_Zhao_2007 阅读(53) 评论(0) 推荐(0) 编辑
摘要:题解 一堆细节的题。 首先答案一定不超过 123456789000000。 考虑枚举 N 的最低位填啥。由于 10x,10x+1,,10x+9 这些数除去最低位以外的位置都相同,因此可以把它们并在一起,然后递归下去。对于每个“数”维护一个数集,表示需要有这个数集里的 阅读全文
posted @ 2021-10-28 15:58 Alan_Zhao_2007 阅读(113) 评论(0) 推荐(0) 编辑
摘要:题解 都 2021 年了,不会还真有人用 SPFA 做最短路题吧? 设 fi 为消灭 i 需要的最小花费,则 fi=min(si,ki+(i,j)Gfj)。这个转移有环,但考虑一个性质:si 最小的点一定不会被其他点更新。于是我们 阅读全文
posted @ 2021-10-27 23:07 Alan_Zhao_2007 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题解 好妙的一道题。 将每个串都抽象成二维平面上的一个点 (xi,yi)xi 为其中 N 的个数,yi 为 B 的个数。 二分答案 mid,那么对于一个点 (xi,yi),能通过不超过 mid 次操作到达它的点的范围是一个凸六边形,所以可 阅读全文
posted @ 2021-10-27 16:32 Alan_Zhao_2007 阅读(40) 评论(1) 推荐(0) 编辑
摘要:题解 当然有广义 SAM 做法,但我用的是 AC 自动机。 设 n 个输出的串为 s1,s2,,sn。 题目中给出的字符串实际上就是一棵 Trie 树,对这棵 Trie 建立 ACAM。 考虑“子串”实际上就是前缀的后缀。对于任意的串 \ 阅读全文
posted @ 2021-10-26 17:21 Alan_Zhao_2007 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题解 CSP 考前做道 manacher。 一个性质:一个字符串的本质不同回文子串个数是 O(n) 级别的。 于是枚举这 O(n) 个回文子串,逐个判断即可。 具体枚举方式见代码。 代码 #include <cstdio> #include < 阅读全文
posted @ 2021-10-23 10:03 Alan_Zhao_2007 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题解 首先显然若 xy 则无解。否则,令 yyx。 设 fk,g 为选若干个数 ai=1n 使得 i=1nai=k 且 \(g\mid \gcd(a_1, 阅读全文
posted @ 2021-10-21 19:28 Alan_Zhao_2007 阅读(68) 评论(0) 推荐(0) 编辑
摘要:常用 chkmin,chkmax template<typename T> bool chkmin(T& x,const T& y){return y<x?(x=y,1):0;} template<typename T> bool chkmax(T& x,const T& y){return x<y 阅读全文
posted @ 2021-10-21 18:52 Alan_Zhao_2007 阅读(310) 评论(0) 推荐(1) 编辑
摘要:题解 2900 就这? 可以发现要求的无非是: 2AS[gcd{A}=1]|A|nAS[gcd{A}=1] 考虑一个常见 阅读全文
posted @ 2021-10-21 15:56 Alan_Zhao_2007 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题解 可以发现,对于巡演的路线 xyab,若 min(x,y)min(a,b)max(x,y)max(a,b),则其答案互不影响。不妨设 x<y,我们需要对每一种 (x,y),(y,x) 求出最小 阅读全文
posted @ 2021-10-13 19:33 Alan_Zhao_2007 阅读(78) 评论(0) 推荐(0) 编辑
摘要:2021 10.10 正睿 NOIP 十连测 Day5 A 合法的操作范围是 [2,n1],我写成了 [1,n]。 10.23 CSP-S 2021 请欣赏我的快读: template<typename T> void Read(T &_x){ _x=0; int _f=1,ch= 阅读全文
posted @ 2021-10-13 13:26 Alan_Zhao_2007 阅读(417) 评论(2) 推荐(0) 编辑
摘要:一种不一样的做法 首先,因为是 (1,1)(3,n) 的简单路径上的点权之和的最大值,所以显然只会在第 2 行进行“向左”的操作。 可以发现,每次向左一定会取到一个 3x 列的子矩阵中的所有数,其中 x 是向左的次数。 如图,向左的次数是 \(6 阅读全文
posted @ 2021-10-11 20:31 Alan_Zhao_2007 阅读(95) 评论(0) 推荐(0) 编辑
摘要:题解 设矩阵是 nm 列的,且唯一的值为 0 的点在 (x,y)。不妨设 xnx+1,ymy+1,因为可以通过旋转和翻转矩阵将 (x,y) 放到这个区域内。 于是,矩阵中离 (x,y) 最远的点一定是 \((n,m)\ 阅读全文
posted @ 2021-10-09 16:12 Alan_Zhao_2007 阅读(50) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2021-10-09 15:42 Alan_Zhao_2007 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题解 假如只有 1 操作,那么操作之间可交换,可以建出 DAG,统计出每种 1 操作的执行次数即可。 可以发现,执行完一个操作 K,再进行一次 2 x 操作,相当于执行了 xK 操作。 于是先倒序拓扑出每个操作执行完会被乘多少,然后正序拓扑即可 阅读全文
posted @ 2021-10-05 19:31 Alan_Zhao_2007 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题解 可以发现,gcd(a1,a2,,ak+1)gcd(a1,a2,,ak),因此前缀中不同的 gcd 值只有 log 种。 考虑分块:每 B 个元素为一块,每块内维护区间异或和、区间内 gcd 的转折点 阅读全文
posted @ 2021-10-02 20:15 Alan_Zhao_2007 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题解 其实就是构造一个 k 叉哈夫曼树,并在保证 wi×depi 最小的情况下使得树的深度最小。 由于哈夫曼树自下而上构造时,可能出现最顶层不满 k 个的情况,所以如果 (n1)mod(k1)0,需要补 \(k-1-((n 阅读全文
posted @ 2021-10-01 12:03 Alan_Zhao_2007 阅读(43) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题