随笔分类 -  题库—Codeforces

摘要:题意 "题目链接" 从$[1, M]$中随机选数,问使得所有数gcd=1的期望步数 Sol 一个很显然的思路是设$f[i]$表示当前数为$i$,期望的操作轮数,转移的时候直接枚举gcd $f[i] = 1 + \frac{ \sum_{j=1}^N f[gcd(i, j)]}{N}$ 然后移一下项就 阅读全文
posted @ 2019-03-22 15:24 自为风月马前卒 阅读(628) 评论(0) 推荐(0)
摘要:题意 "题目链接" 给出一个排列,以及$m$个形如$(x, y)$的限制,表示若$x$在$y$之前则可以交换$x, y$。 问$n$位置上的数最多能前进几步 $n \leqslant 3 10^5, m \leqslant 5 10^5$ Sol 每次遇到这种动来动去的题基本都做不出来qwq 我最开 阅读全文
posted @ 2019-03-17 20:20 自为风月马前卒 阅读(469) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 看到这种题就不难想到是数位dp了。 一个很显然的性质是一个数若能整除所有位数上的数,则一定能整除他们的lcm。 根据这个条件我们不难看出我们只需要记录每个数对所有数的lcm(也就是2520)取模的结果 那么$f[i][j][k]$表示还有$i$个数要决策,之前的数模$25 阅读全文
posted @ 2019-03-17 19:31 自为风月马前卒 阅读(414) 评论(0) 推荐(1)
摘要:题意 "题目链接" Sol 今天上午的A题。想出来怎么做了但是没时间写了qwq 思路很简单,首先把转移方程列一下,发现每一个位置只会从下一行/左右转移过来,而且第N行都是0,那么往下转移的都可以回带。 剩下的也可以联立一下直接解(我在说什么。。) 然后推一推就行了。对于我这种平均每两个符号写错一个的 阅读全文
posted @ 2019-03-16 16:15 自为风月马前卒 阅读(522) 评论(0) 推荐(1)
摘要:题意 "链接" Sol 生成函数博大精深Orz 我们设$f(i)$表示权值为$i$的二叉树数量,转移的时候可以枚举一下根节点 $f(n) = \sum_{w \in C_1 \dots C_n} \sum_{j=0}^{n w} f(j) f(n w j)$ 设$T =n w$,后半部分变为$\su 阅读全文
posted @ 2019-03-13 16:17 自为风月马前卒 阅读(456) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 这题最直接的维护区间以0/1结尾的LIS的方法就不说了。 其实我们可以直接考虑翻转以某个位置为中点的区间的最大值 不难发现前缀和后缀产生的贡献都是独立的,可以直接算。维护一下前缀/后缀和即可 cpp include define Pair pair define MP(x 阅读全文
posted @ 2019-03-06 22:03 自为风月马前卒 阅读(577) 评论(1) 推荐(1)
摘要:题意 "题目链接" Sol 看了status里面最短的代码。。感觉自己真是菜的一批。。直接爆搜居然可以过?。。但是现在还没终测所以可能会fst。。 cppp include define Pair pair define MP(x, y) make_pair(x, y) define fi firs 阅读全文
posted @ 2019-03-06 10:20 自为风月马前卒 阅读(713) 评论(2) 推荐(1)
摘要:题意 "题目链接" Sol 昨天没想到真是有点可惜了。 我们考虑每个点作为最大值的贡献,首先预处理出每个位置$i$左边第一个比他大的数$l$,显然$[l + 1, i]$内的数的后继要么是$i$,要么在这一段区间中。那么可以对这段区间$+1$,然后每次查询$[i k + 1, i]$的最大值即可 c 阅读全文
posted @ 2019-03-06 10:00 自为风月马前卒 阅读(389) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 居然出个SAM板子也是没谁了233 cpp include define Pair pair define MP(x, y) make_pair(x, y) define fi first define se second // define int long long 阅读全文
posted @ 2019-03-04 08:11 自为风月马前卒 阅读(457) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 对构造一无所知。。。 题解的方法比较神仙,,设第一个位置为$ 1$,$S = \sum_{i=1}^n a_i$ 那么我们要让$N S (N 1) (S + 1) = K$ 固定$N$之后可以直接解出$S$。。。 cpp include define Pair pair 阅读全文
posted @ 2019-02-25 10:56 自为风月马前卒 阅读(447) 评论(0) 推荐(1)
摘要:题意 "题目链接" Sol ODT板子题。就是用set维护连续段的大暴力。。 ~~然鹅我抄的板子本题RE提交AC??。。~~ ~~具体来说,用 这个数据测试下面的代码,然后在79行停住,看一下bg和i的值会发生神奇的事情。。~~ 问题已解决,确实是那位博主写错了, 只要把split(l)和split 阅读全文
posted @ 2019-02-09 09:38 自为风月马前卒 阅读(565) 评论(0) 推荐(0)
摘要:题意 "题目链接" 单点修改,区间mod,区间和 Sol 如果x mod ,那么 x % mod 即得易见平凡, 仿照上例显然, 留作习题答案略, 读者自证不难。 反之亦然同理, 推论自然成立, 略去过程Q.E.D., 由上可知证毕。 然后维护个最大值就做完了。。 复杂度不知道是一个log还是两个l 阅读全文
posted @ 2019-02-02 09:14 自为风月马前卒 阅读(398) 评论(0) 推荐(0)
摘要:题意 "题目链接" $n$个点$n$条边的图,有多少种方法给边定向后没有环 Sol 一开始傻了,以为只有一个环。。。实际上N个点N条边还可能是基环树森林。。 做法挺显然的:找出所有的环,设第$i$个环的大小为$w_i$ $ans = 2^{N \sum w_i} \prod (2^{w_i} 2)$ 阅读全文
posted @ 2019-01-30 17:37 自为风月马前卒 阅读(469) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 首先若y % x不为0则答案为0 否则,问题可以转化为,有多少个数列满足和为y/x,且整个序列的gcd=1 考虑容斥,设$g[i]$表示满足和为$i$的序列的方案数,显然$g[i] = 2^{i 1}$(插板后每空位放不放) 同时还可以枚举一下gcd,设$f[i]$表示满 阅读全文
posted @ 2019-01-27 16:58 自为风月马前卒 阅读(438) 评论(0) 推荐(1)
摘要:题意 "题目链接" Sol 接下来我的实现方式和论文里不太一样 然后用bitset优化,上下走分别对应着右移/左移m位,左右走对应着右移/左移1位 我们可以直接预处理出能走的格子和不能走的格子,每次走的时候先全都走过去,再把撞到墙上的补回来即可 阅读全文
posted @ 2019-01-15 16:43 自为风月马前卒 阅读(405) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol $n \leqslant 16$可以想到状压 我们可以预处理出任意两行之间每列的最小值以及相邻两列的最小值 然后枚举一个起点,$f[sta][i]$表示走过了$sta$这个集合内的元素,当前在$i$点的$k$的最大值 转移的时候枚举接下来走哪个位置即可 时间复杂度$n^3 阅读全文
posted @ 2019-01-10 21:25 自为风月马前卒 阅读(580) 评论(2) 推荐(1)
摘要:题意 "题目链接" Sol 开始想的dp,发现根本不能转移(貌似只能做链) 根据期望的线性性,其中$ans = \sum_{1 f(x)}$ $f(x)$表示删除$x$节点的概率,显然$x$节点要被删除,那么它的祖先都不能被删除,因此概率为$\frac{1}{deep[x]}$ cpp includ 阅读全文
posted @ 2019-01-08 20:13 自为风月马前卒 阅读(504) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol (真后悔没打这场EDU qwq) 首先把询问离线,预处理每个数的$pre, nxt$,同时线段树维护$pre$(下标是$pre$,值是$i$),同时维护一下最大值 那么每次在$(1, l 1)$内查询最大值,如果最大值$ = l$,那么说明合法 但是$pre$可能会有相同 阅读全文
posted @ 2019-01-06 17:18 自为风月马前卒 阅读(409) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 由于阶乘的数量增长非常迅速,而$k$又非常小,那么显然最后的序列只有最后几位会发生改变。 前面的位置都是$i = a[i]$。那么前面的可以直接数位dp/爆搜,后面的部分是经典问题,可以用逆康托展开计算。 cpp include define Pair pair defi 阅读全文
posted @ 2019-01-05 21:54 自为风月马前卒 阅读(445) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 首先考虑当$n = p^x$,其中$p$是质数,显然它的因子只有$1, p, p^2, \dots p^x$(最多logn个) 那么可以直接dp, 设$f[i][j]$表示经过了$i$轮,当前数是$p^j$的概率,转移的时候枚举这一轮的$p^j$转移一下 然后我们可以把每 阅读全文
posted @ 2019-01-05 15:02 自为风月马前卒 阅读(316) 评论(0) 推荐(1)

Contact with me