-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.json
1 lines (1 loc) · 25.5 KB
/
search.json
1
[{"title":"2017-2018 ICPC Asia Daejeon Regional","date":"2021-11-17T13:52:49.000Z","url":"/2021/11/17/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2017-2018-ICPC-Asia-Daejeon-Regional/","categories":[["undefined",""]]},{"title":"2021-2022 ICPC Brazil Subregional","date":"2021-11-05T13:37:32.000Z","url":"/2021/11/05/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2021-2022-ICPC-Brazil-Subregional/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还没开始写 "},{"title":"National Taiwan University NCPC Preliminary 2021","date":"2021-11-02T07:57:47.000Z","url":"/2021/11/02/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/National-Taiwan-University-NCPC-Preliminary-2021/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还没开始写 "},{"title":"2018 CCPC Guilin","date":"2021-11-02T07:53:55.000Z","url":"/2021/11/02/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2018-CCPC-Guilin/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还没开始写 "},{"title":"2020 ICPC Taipei Hsinchu Site","date":"2021-10-29T13:15:31.000Z","url":"/2021/10/29/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2020-ICPC-Taipei-Hsinchu-Site/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还没开始写 "},{"title":"2019 CCPC Harbin Site","date":"2021-10-24T10:28:34.000Z","url":"/2021/10/24/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2019-CCPC-Harbin-Site/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还没开始写 开摆的一场,卡常卡的心态都崩了"},{"title":"2020 吉林省赛","date":"2021-10-23T20:37:35.000Z","url":"/2021/10/24/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2020-%E5%90%89%E6%9E%97%E7%9C%81%E8%B5%9B/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还没开始写 "},{"title":"2018-2019 ICPC, NEERC, Northern Eurasia Finals","date":"2021-10-22T12:02:10.000Z","url":"/2021/10/22/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2018-2019-ICPC-NEERC-Northern-Eurasia-Finals/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"写了个C的补题题解,赛中过的题解之后再补 C Cactus Search 题意 交互题,给一颗 $N$ 点仙人掌,系统选好一个点 $x$ 后让选手猜这个点,猜中结束,没猜中的话返回选手所猜点 $u$ 的一个邻接点 $w$,保证 $w$ 到 $x$ 的最短路距离 $dist(w, x)$ 严格小于 $dist(u, x)$,每组数据选 $N$ 次点,每次选点最多猜 $10$ 次,$N\\le 500$ Solution 如果能做到每次猜一个点,不管系统如何回复,都可以淘汰掉至少一半的候选点,那这题就可以做了。 如何满足这样的猜点? 对于每次猜点,选择所有候选点中离其他候选点距离和最小的点,即可。 小证一下 反证法,如果一次猜点后,没能淘汰一半的点,说明一半以上的候选点 $i$ 满足 $dist(i,w)<dist(i,u)$,这说明 $w$ 离其他候选点的距离和更小,$u$ 并不是距离和最小的点。 因此预处理一下两两之间的距离,对于每组询问复杂度是 $N^2+\\frac{N^2}{4}+\\frac{N^2}{16}+\\dots < 2\\times N^2$。总共 $N$ 次询问,总复杂度 $O(N^3)$ 实际上第一次猜点一定是固定的,不用每次询问重复求,剪掉这个后常数非常小,跑的飞快。 一些疑问 我想了很久,还是感觉这题不一定要仙人掌,换成一张图后原先的做法依然成立啊。 如果在图上也能跑的话为什么一定要设成个仙人掌呢,还有题目的输入格式也很奇怪。 也有可能是我想错了?如果有同学知道这题的做法在图上,会出什么问题,或者不会出问题,欢迎联系我 "},{"title":"2021 山东省赛","date":"2021-10-17T09:33:26.000Z","url":"/2021/10/17/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2021-%E5%B1%B1%E4%B8%9C%E7%9C%81%E8%B5%9B/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"复习复习Treap再搞这个K A Beta go 题意 给一张 $N\\times N$ 的围棋棋盘,初始时只有黑子没有白子,然后黑方一直不动,白方一直下,问最多能吃掉多少黑子 数据范围 $N\\le 1000$ Solution 围棋基本规则看题面,这里不讲 黑子被吃的话一定是一个联通块一起被吃,这里称一个完整的联通块黑子为黑块,除了占满整个棋盘的黑块,每个黑块一定都是能被吃的,即每个黑块都有着一个吃掉它所需的白子包围集,稍微思考下可以发现随着棋盘上部分黑块被吃,其余黑块的包围集是不会变的 类似黑块,称空地的联通块为空块,空块的意义在于,只要不填满空块,这个空块内可以随意下白子,如果要填满空块的话,则会发动一次自杀式攻击 总结一下: 一个黑块不能被吃当且仅当这个黑块的包围集需要占满 2 个及以上的空块 另外一个空块如果因为部分黑子被吃而扩大,它将不再限制那些本来需要占满它的黑块,因为黑块的包围集是不会变的 用并查集处理出所有黑块与空块,并处理出每个黑块受哪些空块限制,然后在上面进行跑拓扑,一个黑块被吃时,对所有与其相邻的空块,解放原本被这些空块限制的黑块(限制数-1)。 B Build Roads 题意 给一张 $N$ 点的图,每个点的点权$a_i$在 $[L,R]$ 内随机生成,在上面连边$(i,j)$ 需要花费$\\gcd(a_i,a_j)$,求最小生成树。 数据范围 $N\\le 2\\times 10^5$ Solution 当 $N$ 大了之后答案基本就是 $N-1$ 了,需要特判 $L=R$ 的随机数据 $N$ 小的时候直接$N^2$条边暴力求就行 C Cat Virus 题意 对一棵树上的点进行黑白染色,要求黑点的所有子树均是黑点。 现在给一个$K$,要求构造出一颗 $N\\le 10^5$ 的树满足其染色方案正好为 $K$ 种 数据范围 $K\\le 10^{18}$ Solution 考虑两种构造方式 对于子树 $i$,给其连两个儿子,分别为一个单点和另一棵子树 $j$,考虑 $i$ 分别为黑白点,可得染色方案 $f_i=2\\times f_j+1$。 对于 $i$,单挂一个子树 $j$ ,则可得 $f_i=f_j+1$ 使用方法2将 $K$ 处理成奇数后再使用方式1,重复进行就可以构造出来 D Dyson Box温暖人心小签到,虽然我队好像演了好几发 E Evaluate Expression没补 F Birthday Cake 题意 给 $N$ 个串,问其中有多少对串 $(i,j)$ 满足 将 $s_i$ 与 $s_j$ 拼接后得到一个长度为偶数,前半后半完全一致的串(如 $aabb$) 数据范围 $N\\le 4\\times 10^5, \\sum|s_i|\\le 4\\times 10^5$ Solution 满足条件的 $s_i$ 和 $s_j$ 有两种情况: $s_i=s_j$ $s_i$ 存在长度为 $k$ 的,完全相同的前后缀,并且去掉前后缀后剩下的中间部分与 $s_j$ 相等,即 $s_i=a+b+c,a=c,b=s_j$ 因此将所有串按长度排序,对每个串枚举前后缀,字符串比较以及计数可以用Hash实现。 G Grade Point Average温暖人心小签到 H Adventurer’s Guild温暖人心小签到 I Chemical Code没补 J Tuition Agent没补 K Piggy Calculator没补 L Construction of 5G Base Stations这题的题解属实是看不懂,数学苦手 推荐博客概率与期望进阶,其中有讲期望平方的部分 题意 在 $[1,N]$ 上每个整点有一个人,且有 $M$ 个基站分布在轴上,基站 $i$ 有 $p_i$ 的概率被连上,每个人会按照先近后远,先左后右的顺序连接基站,如果全部连不上则从头再连一遍,每个基站的贡献为连接人数的平方,求期望和 数据范围 $M\\le N\\le 10^6$ Solution 方便起见可以将没有基站的点看作 $p_i=0$ 的基站 先考虑重连的影响 用 $F_x$ 表示考虑连接到基站 $x$ 的概率,$F_x’$ 表示第一轮就连上的概率, $Z$ 表示一轮里全部没连上的概率,则有: F_x'=p_x\\prod\\limits_{y比x先连}(1-p_y) \\\\ Z=\\prod\\limits_{i=1}^n (1-p_i) \\\\ \\begin{align} F_x &= F_x' + F_x'\\times Z + F_x'\\times Z^2 + F_x'\\times Z^3 + \\cdots \\\\ &= F_x'\\times (1+Z+Z^2+Z^3+\\cdots) \\\\ &= F_x'\\times \\frac{1}{1-Z} \\\\ \\end{align}先不考虑平方,求一下某个基站 $x$ 的连接人数期望 $G_x$ \\begin{align} G_x &=\\sum\\limits_{i=1}^n F_x \\\\ &=\\frac{p_x}{1-Z}\\times \\sum\\limits_{i=1}^n \\prod\\limits_{y比x先连}(1-p_y) \\end{align}式子左边都是常数,考虑式子的右边怎么计算。 左右分开计算,用 $L_x$ 表示只考虑 $x$ 左边的人,$R_x$ 类似,即: L_x + 1 + R_x = \\sum\\limits_{i=1}^n \\prod\\limits_{y比x先连}(1-p_y)考虑计算 $L_x$,从 $L_{x-2}$ 转移到 $L_x$ 时,基站右移2格,前面整体右移1格,有: \\sum\\limits_{i=2}^{x-2} \\prod(1-p_y)=(1-p_{x-2})\\times (1-p_{x-1})\\times \\sum\\limits_{i=1}^{x-3} \\prod(1-p_y)再补上 $i=1$ 和 $i=x-1$ 这两个点即可,因此有转移式: \\begin{align} L_i &= L_{i-2} \\times (1-p_{x-2})\\times (1-p_{x-1}) \\\\ &+ (1-p_{x-1})\\times (1-p_{x-2}) \\\\ &+ \\prod\\limits_{j=1}^{i-1}(1-p_j) \\end{align}计算 $R_i$ 类似,到这里就算出了所有基站的 $G_i$,接下来考虑对每个基站处理平方期望 $H_i$ 这个模型相当于给 $n$ 个 $0/1$ 随机变量 $a_i$,变量 $a_i$ 为 1 的概率为 $p_i$,求 $E((\\sum a_i)^2)$ 期望的基本性质: 如果 $X, Y$ 独立,则有 $E(XY)=E(X)\\times E(Y)$ 和 $E(X+Y)=E(X)+E(Y)$ \\begin{align} E((\\sum a_i)^2) &= E(\\sum\\limits_{ij}a_i\\times a_j) \\\\ &= \\sum\\limits_{ij} E(a_i\\times a_j) \\\\ &= \\sum\\limits_{i\\ne j} E(a_i)\\times E(a_j) + \\sum\\limits_i E(a_i^2) \\\\ &= \\sum\\limits_{i\\ne j} p_i\\times p_j + \\sum\\limits_i p_i \\end{align}本题的平方期望则类似转化,用 $F_{i,x}$ 表示第 $i$ 个人连接到基站 $x$ 的概率: \\begin{align} H_x &= \\sum\\limits_{i\\ne j} F_{i,x} \\times F_{j,x} + \\sum\\limits_{i=1}^{n} F_{i,x} \\\\ &= (\\sum\\limits_{i=1}^n F_{i,x})^2 - \\sum\\limits_{i=1}^n F_{i,x}^2 + \\sum\\limits_{i=1}^n F_{i,x} \\\\ &= G_x^2 - \\sum\\limits_{i=1}^n F_{i,x}^2 + G_x \\end{align}其中 $G_x$ 是已经求出的,而剩下的 $\\sum\\limits_{i=1}^n F_{i,x}^2$ 实际上有: \\sum\\limits_{i=1}^n F_{i,x}^2= \\frac{p_x^2}{(1-Z)^2}\\times \\sum\\limits_{i=1}^n \\prod\\limits_{y比x先连}(1-p_y)^2用和 $G_x$ 类似的转移方式计算 M Matrix Problem 题意 给一个$N\\times M$ 的01矩阵$C$,构造两个相同大小的01矩阵 $A$ 和 $B$,要求 $C_{ij}=A_{ij}\\&B_{ij}$,且$AB$ 矩阵上的所有1成联通块 保证 $C$ 的边界均为0,$N,M\\le 500$ Solution $A$ 的边界全染为1,内部的子矩阵奇数行全染为1 $B$ 的边界全为0,内部的子矩阵偶数行全染为1 "},{"title":"2021 东北省赛","date":"2021-10-16T17:30:05.000Z","url":"/2021/10/17/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2021-%E4%B8%9C%E5%8C%97%E7%9C%81%E8%B5%9B/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还有个F要补,L可能能补 A Matrix写了半天发现写出来的题意还不如直接看题面简单……就不写题意了 Solution 分开考虑 ${1,2,…,n}$ 的贡献,对于数字 $k$ ,以 $k$ 为最小值的行有 $C_{n^2-k}^{n-1}$ 种。 这一行可以是 $[1,n]$ 中任意一行,外加剩下的 $n^2-n$ 个数字可以随意排列,以及这一行内部可以随意排列,因此包含某个 $a_i=k$ 的布局方法有 $C_{n^2-k}^{n-1}\\times C_n^1\\times (n^2-n)!\\times n!$ 种。 B Cypher模拟+阅读理解题,还好我队有位托福待考选手@Boboge 实现难度并不大,把题意理清楚就很好写,所以这题就不写 Solution 了) 题意 讲一下大致的,题意细节很多,建议自己读一下结合理解…… 可以结合题面那张图来理解 给定一种由三个部件组成的加密方式 第一个部件由多对 $(s_i,t_i)$ 组成,会将输入的字符 $s_i$ 和 $t_i$ 互转 第二个部件由多行字符串 $p_i$ 组成,其中每个 $p_i$ 是一个26个字母的排列,并且每个 $p_i$ 还带有一个初始时正序的排列 $q_i=abcd…xyz$,每次转化会先用上次转化后字符的下标 $idx$ ,去获取 $ch=q_i[idx]$ ,然后在 $p_i$ 中找到 $ch$ 的位置 $idx$,再去做下一次转化 第一次转化时用传入字符的字典序做下标,比如传入 $Z$,则一开始 $idx=26$ 第三个部件类似第二个部件,细节有点差别 给定输入字符串,输出加密后的字符串 C Vertex Deletion 题意 给一个 $N$ 点的树,要求删掉任意数量的点使得剩下的联通块大小均 $\\ge2$,问有多少种删点方式 Solution 称那些没有边相连的点为独立点 考虑子树 $i$,有三种状态: 根没有被删除且根不为独立点,有 $f_i$ 种方案 根没有被删除且根为独立点,有 $g_i$ 种方案 根被删除,有 $h_i$ 种方案 考虑转移: 转移时,如果根不被删,那只有所有子树都删根,根才会为独立点,否则根不为独立点 f_i=\\prod\\limits_{j}(f_j+g_j+h_j) - \\prod\\limits_{j}h_j \\\\ g_i=\\prod\\limits_{j}h_j 如果根被删,则子树的 $g_j$ 无法转移上来 f_i=\\prod\\limits_{j}(f_j+h_j) D Lowbit 题意 给一个长度 $n$ 的数组,$m$ 次操作,操作有两种: 对于区间 $[L,R]$, $a_i+=lowbit(a_i)$ 求 $[L, R]$ 的区间和,对 998244353 取模 数据范围 $T\\le 20, n\\le 10^5, m\\le 10^5$ Solution 对于一个数 $a_i$,最多进行 $log$ 次1操作后,再对 $a_i$ 进行1操作则等价于 $a_i=a_i\\times 2$,称这样的 $a_i$ 为稳定态 因此对线段树上每个节点 $seg_k$ 维护一个 $bool_k$,表示对于 $k$ 所代表的区间$[L_k,R_k]$,是否所有的 $a_i$ 均已处于稳定态,如果是,则直接对 $seg_k$ 做区间乘2。 否则就继续递归更新 $seg_{k\\times2}$ 和$seg_{k\\times 2+1}$。对于每个数,最多进行 $log$ 次1操作,有 $log$ 个区间覆盖它,总共 $n$ 个数。因此额外拆分的次数不会超过 $nlog^2$ 次 E Easy Math Problem签到,略 F Permutation// 未补 G Ball 题意 给定长度 $n$ 的斜坡,丢一个球在 $p$ 位置,如果 $p$ 位置为空,则该球将会留在 $p$ 位置。否则它会从 ${p-1,p-2,…,1}$ 找一个最近的空位置并留在该位置。如果 $[1,p]$ 全部不为空,则该球将会掉出斜坡。 一共要丢 $m$ 个球,用 ${p_1,p_2,…,p_m}(1\\le p_i\\le n)$ 表示一种丢球方案,询问有多少种方案能刚好掉出去 $k$ 个球。 数据范围 $T\\le 1000, n\\le 500, m\\le 1000, 0\\le k\\le 500$ Solution 考虑斜坡最终的形状,一定会有一段全被球填满的前缀,因为球只有被丢在这种前缀上才能掉出斜坡。 我们设这段前缀长度为 $x$,而 $x+1$ 一定是空的,那么整段斜坡就被分成了左右两半: 左半边长度 $x$,填满了球,并且一共有 $x+k$ 个球丢在了上面 右半边长度 $n-1-x$,一共有 $m-x-k$ 个球丢在了上面,考虑到 $x+1$ 是空的,右半边就相当于 $m-x-k$ 个球丢在长度 $n-1-x$ 的斜坡上并且没有球掉出斜坡 我们用 $f_{ij}$ 表示 $j$ 个球丢在长度 $i$ 的斜坡上把斜坡填满的方案数,$g_{ij}$ 表示 $j$ 个球丢在长度 $i$ 的斜坡上没有球掉出去的方案数,则有答案 ans=\\sum\\limits_{x}f_{x,x+k}\\times g_{n-1-x,m-x-k}\\times C_m^{x+k}接下来考虑求解 $f_{ij}$ 和 $g_{ij}$,求 $g_{ij}$ 的过程比较好理解,先来求 $g_{ij}$: 从左往右考虑,在第 $i$ 个位置放置 $k$ 个球,则有 $g_{ij}=g_{i-1,j-k}\\times C_j^k$,控制一下枚举范围 $j\\le i$。 解释一下这个 $C_j^k$,使用丢球序列 $p$ 来考虑,$g_{i-1,j-k}$ 相当于很多个长度为 $j-k$ 的合法序列,而 $f_{i,j}$ 则是往旧序列中插入 $k$ 个 $i$,相当于在长度 $j$ 的序列中选择 $k$ 个位置放 $i$,剩下位置用来排列 $g_{i-1,j-k}$。 再来求 $f_{ij}$: $f_{ij}$ 关键在于从右向左考虑转移,在斜坡最左边新加一个位置,放置 $k$ 个球,则有 $f_{i,j}=f_{i-1,j-k}\\times C_j^k$ 之前看题解转移式一直以为 $f_{ij}$ 也是从左往右转移,但这样可能会出现当前出现了空的段但后面放了很多而填满了的情况,所以一直想不通。感谢@Nanako一句从右向左点醒我。 H Loneliness// TODO I Takeaway签到,略 J Transform几何板子题 附kuangbin模板,里面有这题需要的几何板子 出题人说手推不难……我队这几何水平看样子只能多带几套板子了 K City// TODO L k-th Smallest Common Substring// 未补 M Master of Shuangpin字符串模拟,大伙都过了,那就不写了"},{"title":"2020 东北省赛","date":"2021-10-15T20:10:12.000Z","url":"/2021/10/16/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/2020-%E4%B8%9C%E5%8C%97%E7%9C%81%E8%B5%9B/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"还有个A可能能补 A Micro Structure Thread// 未补 B Team 题意 A,B,C组各$n$个人,一个队伍要选$3$个学生$a,b,c$(每组一个),每个人有一个点权$v_i$,一个队伍的权值为 $f(a, b)+f(a, c)$。一共要选$m$队,问权值和最大为多少。数据范围 $m\\leq n\\leq 200, T\\leq 10$ f(i, j) = (v_i+v_j)*(v_i\\oplus v_j) \\% MOD Solution 转化为最小费用最大流模型,用最大流对应最多选m队的条件,将边权置为负值,即可将求最大权值转化为最小权值。 建边方法如下: 将源点$S$拆成两个点$S$和$S’$,建边$S\\rightarrow S’$,容量$m$,费用0 对每个$b_i$建边$S’\\rightarrow b_i$,容量1,费用0 对每个$(b_i, a_j)$,建边$b_i\\rightarrow a_j$,容量1,费用$f(b_i,a_j)$ 将每个$a_i$拆成两个点$a_i$和$a_i’$,建边$a_i\\rightarrow a_i’$,容量1,费用0,这一步是为了避免一个$a_i$被多个队伍复用 对每个$(a_i’,c_j)$,建边$a_i’\\rightarrow c_j$,容量1,费用$f(a_i’,c_j)$ 关于负边: 注意Dijkstra无法处理负边,应使用SPFA的费用流 本题中,答案边数是固定的,因此也可以将所有负边加上一个固定值变为正权边,然后用Dijkstra费用流 C Function 题意 用$f(x)$表示$x$的所有后缀类乘后对$x+1$取模的结果,如$f(1023)=(3\\times 23\\times 23\\times 1023)\\%1024$ 用$g(n,m)$表示对$n$做$m$次$n=f(n)$ 求$\\sum\\limits_{i=1}^m g(n, i)$,数据范围 $1\\leq n,m\\leq 10^9,T\\leq 20$ Solution 瞎几把手玩了几组数据,感觉 $n$ 实际做不了几次$n=f(n)$ 就会死循环 $n=f(n)$,跟榜直接冲了发暴力就过了 但是这个收敛的次数实在不会证 D Fall Guys// TODO E Liner vectors// TODO F Splendor// 未补 G Halli Galli// TODO H PepperLa’s String// TODO I PepperLa’s Cram School 题意 给一张 $N\\times N$ 的完全图,每条边权值相等,再给一个 $N\\times N$ 的矩阵 $a$,要求选取几条边,将其余边都删除后,使得对所有 $(i,j)$ ,最短路 $dis_{i,j}=a_{i,j}$ ,问最少选几条边,保证给出的矩阵 $a$ 合法。(即一定存在选边方案) 多组数据,数据范围 $N\\leq 10^3, \\sum N\\leq 5\\times 10^3$ Solution 由于所有边等长,矩阵 $a$ 又一定合法,因此对于 $a_{i,j}=min(a_{i,j})$ 的 $(i,j)$,一定有直连边,选择这些边即可 坑点是题目只说所有边等长,但没有说边权是多少,一开始默认边权为1,wa了不少发 J Color the blocks签到,懒得写了,略 K PeperLa’s Boast 题意 给一张 $N\\times M$ 的格点图,每次移动可以从 $(i,j)$ 移动到 $(i+1,j),(i,j+1),(i+1,j+1)$,要求从$(1,1)$出发走到$(n,m)$,每个点有权值 $a_{i,j}$,走到$(i,j)$可以获取$a_{i,j}$的能量,若$a_{i,j}\\leq 0$,表示本格子有毒,需要屏气通过,可以一次性花费 $U$ 的能量开启屏气状态,屏气状态持续$K$步,可以主动取消。 这里题意有点歧义,实际上屏气状态需要在进入毒气区前开启,并在离开毒气区后解除,即如果$K=1$,是无法通过任何毒气区的。 求走到$(n,m)$时,身上最多有多少能量 多组数据,数据范围 $N,M\\le 10^3, 1\\le K,U\\le 10^9,\\sum {N\\times M}\\le 7\\times 10^6$ Solution 考虑DP,$f_{i,j}$ 表示走到 $(i,j)$ 时最多有多少能量,两种转移: 不考虑屏气,则有如下转移式 f_{i,j}= \\begin{cases} f_{i,j-1} + a_{i,j}& a_{i,j-1}>0 \\\\ f_{i-1,j} + a_{i,j}& a_{i-1,j}>0 \\\\ f_{i-1,j-1} + a_{i,j}& a_{i-1,j-1}>0 \\\\ \\end{cases} 考虑屏气,则有如下转移式 f_{i,j}=max(f_{x,y})-U+a_{i,j} \\ \\ (i-k\\le x\\le i,j-k\\le y\\le j)第一种转移比较简单,主要讲第二种转移。 该转移相当于从 $(i,j)$ 的左上角矩阵中取一个最大值,由于转移是从左到右,从上到下进行的,可以对每一列维护一个单调队列,这样就可以在dp到第$i$行时,对每个 $j$ 维护 $max(f_{x,j})(i-k\\le x\\le i)$。 然后从这一行上的每个单调队列中取出最大值,再做一遍单调队列,就可以得到这个矩阵中的最大值了。 相当于先对每列求最大值,再从中求矩阵的最大值。 复杂度$O(N\\times M)$ L PeperLa’s Express不想写了啊啊啊啊啊 出题人题解 Hile_Meow题解"},{"title":"Final Fantasy 队伍训练记录","date":"2021-10-15T19:11:08.000Z","url":"/2021/10/16/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/Final-Fantasy-%E9%98%9F%E4%BC%8D%E8%AE%AD%E7%BB%83%E8%AE%B0%E5%BD%95/","categories":[["组队赛训练","/categories/%E7%BB%84%E9%98%9F%E8%B5%9B%E8%AE%AD%E7%BB%83/"]],"content":"三只猪头 Name Solved A B C D E F G H I J K L M N 2020 东北省赛 10/12 - O O O O - O O O O O Ø 2021 东北省赛 11/13 O O O O O - Ø O O Ø O - O 2021 山东省赛 9/13 Ø O O O - O O O - ! - Ø O 2018-2019 ICPC, NEERC, Northern Eurasia Finals 8/13 O - Ø - O O O - - - O O O 2020 吉林省赛 12/14 O O O Ø O O O O O O - O O - 2019 CCPC Harbin Site 7/12 O - - - O O - - O O O Ø 2020 ICPC Taipei Hsinchu Site 10/13 O O O - O O Ø O O - Ø - O 2021 National Taiwan University NCPC Preliminary 5/12 - O O - ! - - - O O O - 2018 CCPC Guilin 6/12 - O - O - - O O - O - O 2021-2022 ICPC Brazil Subregional 8/14 - Ø O - O - O O - - O - O O 2017-2018 ICPC Asia Daejeon Regional 8/12 - O O O O O - O O - O - O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 "},{"title":"警示,卡精度题的一些坑","date":"2021-10-15T18:41:12.000Z","url":"/2021/10/16/%E8%AD%A6%E7%A4%BA%EF%BC%8C%E5%8D%A1%E7%B2%BE%E5%BA%A6%E9%A2%98%E7%9A%84%E4%B8%80%E4%BA%9B%E5%9D%91/","tags":[["坑","/tags/%E5%9D%91/"]],"categories":[["奇技淫巧","/categories/%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/"]],"content":"用 double 转 LL 的方法提高精度时,需要注意一些问题 浮点损失的原因 浮点位数超过double或者long double存储上限,这个比较常见,这里不作讨论。 浮点数是二进制表示的,但总有二进制无法完美表示的浮点数。虽然 IEEE754 怎么算的我已经忘了。这里主要讨论这个原因 double转long long面对精度要求较高的题目,一个常见的做法是把double转成long long来运算,比如scanf("%lf", &x); ll a = x*10000 但是这样做是有问题的 input output 解决方法 换一个读入方式,比如字符串读入 使用d = round(x * 10000)来替代d = x * 10000,虽然二进制不能完美表示浮点数,但是它会做到尽可能接近,使用round基本不会出问题 ABC#191 D这个题把我卡的人都差点昏过去,原来我以前的double转long long写法一直都有问题"},{"title":"在hexo中使用latex渲染","date":"2021-10-15T18:32:47.000Z","url":"/2021/10/16/%E5%9C%A8hexo%E4%B8%AD%E4%BD%BF%E7%94%A8latex%E6%B8%B2%E6%9F%93/","categories":[["教程","/categories/%E6%95%99%E7%A8%8B/"]],"content":"数学公式又挂了啊啊啊啊啊啊啊啊 参考链接: 感谢这位老哥整理的博客 解决多个下标导致渲染失败的问题:只修改文中提到的 <em> 标签相关即可,修改另一个会导致本地渲染成功,github部署后渲染失败,原因不明。"},{"title":"NamomoCamp-线段树 部分题解","date":"2021-01-31T23:28:16.000Z","url":"/2021/02/01/namomo-camp-segmentTree%E9%83%A8%E5%88%86%E9%A2%98%E8%A7%A3/","tags":[["线段树","/tags/%E7%BA%BF%E6%AE%B5%E6%A0%91/"]],"categories":[["杂题练习","/categories/%E6%9D%82%E9%A2%98%E7%BB%83%E4%B9%A0/"],["NamomoCamp","/categories/%E6%9D%82%E9%A2%98%E7%BB%83%E4%B9%A0/NamomoCamp/"]],"content":"NamomoCamp2020-div2-day5-线段树 部分题解 Subsequence Count (hdu 6155) Tag dp, 矩阵,线段树 Solution Code "},{"title":"NamomoCamp-dp 部分题解","date":"2021-01-31T20:39:03.000Z","url":"/2021/02/01/namomo-camp-dp%E9%83%A8%E5%88%86%E9%A2%98%E8%A7%A3/","tags":[["dp","/tags/dp/"]],"categories":[["杂题练习","/categories/%E6%9D%82%E9%A2%98%E7%BB%83%E4%B9%A0/"],["NamomoCamp","/categories/%E6%9D%82%E9%A2%98%E7%BB%83%E4%B9%A0/NamomoCamp/"]],"content":"NamomoCamp2020-div2-day1-dp 部分题解 New Year and Original Order (Good Bye 2017 G) Tag 数位dp Solution 用$f[d][i]$表示数字$d$在第$i$位上出现的次数,假设我们已知所有$f[d][i]$,则有 ans=\\sum_{d=0}^{9}\\sum_{i=1}^{N}(f[d][i]\\times10^{i-1}\\times d)可惜的是$f[d][i]$未知,直接求$f[d][i]$也很难求 考虑下性质:所有数字升序排序,转化一下求$f[d][i]$的思路,用$g[d][i]$表示$\\ge d$的数字出现$\\ge i$次的次数,那么有$f[d][i]=g[d][i]-g[d+1][i]$ $g[d][i]$依旧不好直接求,但可以先求$h[d][i]$:$\\ge d$的数字出现恰好$i$次的次数,$g[d][i]=\\sum_{j=i}^{n}h[d][j]$ $h$就可以直接求了,数位dp一下即可,状态$h[pos][d][i][limit]$,状态数$O(10N^2)$ $k$表示当前位枚举的数字,转移式 h[pos][d][i]= \\begin{cases} h[pos+1][d][i]& k"}]