08 2021 档案

摘要:题目 Problem - H - Codeforces 给定一个整数序列${a_i}\(满足\)-1\le a_i\le 1$,给定$k$个约束条件$(l,r,d)\(代表\)\sum\limits_{i=l}^{r}{a_i}\ge d$。你需要将${a_i}$中所有为0的位置的值替换为-1或1, 阅读全文
posted @ 2021-08-25 22:34 limil 阅读(70) 评论(0) 推荐(0)
摘要:题目 Access Points 给定n个点坐标,编号1~n。让你重新安排这n个点坐标,满足编号小的横纵坐标均小于等于编号大的横纵坐标,同时让每个点偏移的距离平方和最小,输出最小值。 题解 显然,x和y坐标独立,可以分开处理。 问题变成一维问题。因为最终坐标要按照编号从小到大递增。编号连续的点肯定要 阅读全文
posted @ 2021-08-25 07:54 limil 阅读(94) 评论(0) 推荐(0)
摘要:Miller-Rabin素性测试 用于快速判断一个大数是不是素数。时间复杂度$O(k\log^3(n))$,$k$为测试轮数。如果底数随机,一般取$k=8$。 一个很好的博客:素数与素性测试 ll qpow(ll a, ll b, ll m) { ll res = 1; while(b) { if( 阅读全文
posted @ 2021-08-24 11:03 limil 阅读(67) 评论(0) 推荐(0)
摘要:题目 给定$n$和$k$,求小于$n$且不被前$k$个素数整除的个数,\(n\le 10^{18},k\le 16\)。 题解 很容易想到用容斥来解决,但$T\cdot 2^{16}$太大,得想办法经可能预处理。 前8个素数乘积很小数量级为$107$,可以预处理前$107$的答案,从而可以O(1)查 阅读全文
posted @ 2021-08-22 14:56 limil 阅读(81) 评论(0) 推荐(0)
摘要:题目 source 有$n$包硬币,其中有一包硬币里全是假硬币。假硬币比真硬币略重,但是不知道真假硬币的确切重量。可以用天平称重$m$次,每次可以往天平两端任意分配硬币包内的硬币。当天平两端硬币数量相等时,就会显示左端重量减去右端重量的值(这个值可正可负数)。 题解 假设真硬盘重$s$,假硬币重$s 阅读全文
posted @ 2021-08-22 14:46 limil 阅读(165) 评论(0) 推荐(1)
摘要:题目 给定n个区间[l_i,r_i]和数m,问有多少组(a_1,a_2,...,a_i)满足: \(a_i\in [l_i,r_i]\) \(\sum\limits_{i=1}^na_i\le m\) \(\gcd(a_1,...,a_n)=1\) 数据范围:\(n\le 50\),\(m \le 阅读全文
posted @ 2021-08-22 13:25 limil 阅读(48) 评论(0) 推荐(0)
摘要:题目 G-Game of Death_2021牛客暑期多校训练营10 题解 设$f(S)$代表集合$S$的人均被击中概率,$g(S)$代表击中的人是$S$的子集的概率。 可得 \[ f(S)=\sum\limits_{T \subseteq S}{(-1)^{|S|-|T|}\cdot g(T)} 阅读全文
posted @ 2021-08-22 12:43 limil 阅读(128) 评论(0) 推荐(0)
摘要:题目链接 J-Tree_2021牛客暑期多校训练营8 (nowcoder.com) 题解 将Toilet-Ares简称为$\rm T$,将Unidentified-person简称为$\rm U$。 在$s$​到$t$​的路径中,如果离开路径,那么玩家能走的最远距离就是他走进的子树的最远距离。以$t 阅读全文
posted @ 2021-08-22 12:41 limil 阅读(64) 评论(0) 推荐(0)
摘要:题目 Problem - D2 给定两个不同的分别包含$n$个点的森林,每次可以同时在两个森林加一条相同的边,加边过程中不能出现环。问最多能加多少边,输出任一方案。\(n\le 10^5\) 题解 在submission上看到一个很吊的做法。 先确定一个根$rt$,比如1号结点,然后遍历每个点$u$ 阅读全文
posted @ 2021-08-17 11:51 limil 阅读(89) 评论(0) 推荐(0)
摘要:题目 给定n个区间$[l_i,r_i]$和数$m$,问有多少组$(a_1,a_2,...,a_i)$满足: \(a_i\in [l_i,r_i]\) \(\sum\limits_{i=1}^na_i\le m\) \(\gcd(a_1,...,a_n)=1\) 数据范围:\(n\le 50\),\( 阅读全文
posted @ 2021-08-16 11:04 limil 阅读(95) 评论(0) 推荐(0)
摘要:题目 C-Cells_2021牛客暑期多校训练营9 题解 先放一个LGV引理的链接在这里。 主要讲讲题解中这里的推导 每次从后往前,后一列减去$t$倍前一列可得 \[ (a_i+1)\prod_{k=2}^{j+1}{(a_i+k)}-t(a_i+1)\prod_{k=2}^{j}{(a_i+k)} 阅读全文
posted @ 2021-08-15 19:53 limil 阅读(88) 评论(0) 推荐(0)
摘要:21牛客9G - Glass Balls (树上概率dp) 题目 source 题解 UPD: 队友写得题解真好啊,简单清晰,推荐:2021牛客暑期多校训练营9 G (树上概率dp 对于存在不合法的情况dp启示) 可以直接令分数为状态,从v转移一步到u,贡献是score[v]再加上v上面的那1个球, 阅读全文
posted @ 2021-08-15 14:20 limil 阅读(144) 评论(0) 推荐(0)
摘要:题目 source 题解 首先离散化,让区间值域数量级在1e5。比较容易可以想到一个O(n^2)的做法,即从下到上遍历每一列,在每一列对其下面有交集的列连一条有向边。长度最长的链就是答案。离散化后,就可以直接在线段树上操作区间。线段树维护区间内最长的链长和对应的行的编号。每次加入一行的若干区间更新最 阅读全文
posted @ 2021-08-10 23:27 limil 阅读(75) 评论(0) 推荐(0)
摘要:题目 source 题解 按位计算贡献,$dp[i]$代表前$i$位的答案。第$i$位的贡献如下: 当$n$​为偶数时,如果第$i$位​全为1,那么前$i-1$​位可以随便取; 当$n$为奇数时,第$i$位不能全为1; 如果第$i$位不全为1,则第$i$位只能有偶数个1,贡献为$(2^{n-1}-[ 阅读全文
posted @ 2021-08-10 23:18 limil 阅读(66) 评论(0) 推荐(0)
摘要:题目链接 J-Tree_2021牛客暑期多校训练营8 (nowcoder.com) 题解 将Toilet-Ares简称为$\rm T$,将Unidentified-person简称为$\rm U$。 在$s$​到$t$​的路径中,如果离开路径,那么玩家能走的最远距离就是他走进的子树的最远距离。以$t 阅读全文
posted @ 2021-08-10 16:29 limil 阅读(100) 评论(0) 推荐(0)
摘要:题目链接 Problem - 7016 题解 设矩阵$F$为从$i$出发到$j$停止的概率(对应$f_{i,j}$),矩阵$G$为从$i$出发到$j$无数次的概率之和(对应$g_{i,j}$),概率矩阵为P(对应$p_{i,j}$)。 对于矩阵$F$容易得到: \[ f_{i,j}=g_{i,j}\ 阅读全文
posted @ 2021-08-09 01:45 limil 阅读(65) 评论(0) 推荐(0)
摘要:之前做题要用到min25筛,就断断续续地学了几下,用后即忘,简直就是浪费时间。不如现在好好记下来,巩固一下记忆。 在找博客学习过程中发现了一个写得非常好的博客:Min-25筛学习笔记 | LNRBHAW,配合Min_25 筛 - OI Wiki (oi-wiki.org)食用,效果很好。 作用和适用 阅读全文
posted @ 2021-08-06 01:35 limil 阅读(479) 评论(0) 推荐(0)
摘要:题目链接 Hasse Diagram 题解 一开始推的是$f(x)=\sum\limits_{d|x}{g(d)}$,其中$g(x)$代表本质不同的质因数的个数,后来发现这个函数没有积性,无从下手。 后来看了题解,由于$n$​​​​​可以表示成$\prod\limits{pc}$​​​​​,对于某个 阅读全文
posted @ 2021-08-05 22:51 limil 阅读(285) 评论(0) 推荐(0)
摘要:题解 经典的卷积求字符串匹配问题,但是我看错题+太菜,没想到用FTT做。 先忽略通配符的影响,分字符计算出每个起点的最大匹配字符个数,卷积的时候让T串逆序即可。 考虑通配符的贡献,贡献为S中通配符的个数 + T中通配符的个数 - S和T中对应位置都是通配符的个数。前两项可以用前缀和计算,后一项可以用 阅读全文
posted @ 2021-08-02 11:15 limil 阅读(105) 评论(0) 推荐(0)
摘要:题意 source 题解 如果存在$a \equiv b \ {\rm mod} \ M$,即$a-b \equiv 0 \ {\rm mod} \ M$​,等价于$a-b=kM$。所以如果能求出所有可能的差值,就可以用O(nlogn)复杂度解决。 设$f_i$代表数$i$能够被表示,那么只需用$f 阅读全文
posted @ 2021-08-02 10:56 limil 阅读(226) 评论(0) 推荐(0)
摘要:原理见:快速傅里叶变换 - OI Wiki 大概的理解:多项式函数系数到函数点值的变换和逆变换,利用单位复根的”旋转“性质实现,分治法实现O(nlogn)。 应用:多项式乘法,卷积的加速(一些dp式子的加速),字符串匹配(实现不完全匹配),大数相乘...... 模版: 有递归实现和非递归实现,递归实 阅读全文
posted @ 2021-08-02 10:19 limil 阅读(164) 评论(0) 推荐(0)
摘要:来源 B - Boxes(思维) 最多只需问一次。开箱顺序一定是根据代价从小到大开的。当你开箱到某个位置i,i之后的球都是同色,那么你一定能知道剩余球的情况,可以提前结束。因此答案就是 $\sum\limits_{i< n}({\rm P(位置i之后都同色)}\times cost_i)$​​​。 阅读全文
posted @ 2021-08-01 15:37 limil 阅读(131) 评论(0) 推荐(1)
摘要:来源 B - Sample Game(dp) $dp_i$​代表在位置$i$时还有多少步结束的期望值。 因为期望具有线性性,根据下一个位置$j$,有两种情况: \(j<i\),说明下一步就结束了,有$dp_i=p_i \times 1$ $j>=i$​,则说明还有$dp_j$​步才能结束,有$dp_ 阅读全文
posted @ 2021-08-01 14:42 limil 阅读(84) 评论(0) 推荐(0)
摘要:来源 C - Minimum grid(最大匹配) 想要代价最小,填的数当然是越少越好。对于一个位置,如果它所在的行和列的最大值为x,那么这个位置填x是最优的。如果填的数比x大,矛盾;如果比x小,相当于没填,白白浪费一个位置。 将数组b、c的数称为限定数,那么对于每个x,它有n'个行限定数,m'个列 阅读全文
posted @ 2021-08-01 14:07 limil 阅读(119) 评论(0) 推荐(0)