摘要:
"题目" 首先我们可以通过经典容斥转化为计算$[1,x]$的答案。 现在我们考虑一个数的个位对答案的贡献。 每做一次操作都会让个位加上十位然后取模,直到只有个位为止。 我们发现这个过程中,个位数前的系数永远都是$1$,也就是个位数对答案的贡献系数为$1$。 这意味着我们对于一个固定的只有个位没确定的 阅读全文
摘要:
"题目" 首先我们可以非常轻松地预处理出$f_{i,j}$表示一个最高位为$i$位且该位为$j$的windy数的个数。 然后我们可以利用经典容斥把答案变成求$[1,x]$的windy数个数。 设$x$有$len$位,从低到高位分别是$a_1,\cdots,a_{len}$ 首先我们把位数小于$len 阅读全文
摘要:
"题目" $v$表示权值,$F$表示频率。 首先我们显然可以把这个权值离散化。 然后我们想一下,这个东西它是一棵树对吧,但是我们改变权值会引起其树形态的改变,这样很不好做,所以我们考虑把它转化为序列上的问题。 我们知道这是一个treap对吧,所以它的中序遍历的数据值是递增的,我们考虑这个性质入手,把 阅读全文
摘要:
"题目" 首先断环为链,然后我们发现对于求最小值,这是一个裸的四边形不等式优化dp。 而对于最大值,我们可以发现$s_{i,j}=l\ or\ r 1$。 阅读全文
摘要:
单调队列&单调栈: 有手就行.jpg 四边形不等式: 若$w(i,j)$满足$\forall a\le b<c\le d,w(a,c)+w(b,d)\le w(b,c)+w(a,d)$,那么我们称$w(i,j)$满足 四边形不等式 。 若$w(i,j)$满足$\forall a\le b<c\le 阅读全文
摘要:
"Link" 对每个集合维护其$a_i$表示有多少数是$i$的倍数。显然这个$a$数组与可重集一一对应。 第一种操做我们先预处理出$d_{i,j}$表示$i$是否为$j$,那么就变成了把$d_v$赋给$a_x$。 第二种操作就变成了$a$相加。 第三种操作就变成了$a$相乘。($i|gcd(a,b) 阅读全文
摘要:
"Link" 一个较为直观的想法是把所有因数找出来,暴力dp跑$k$轮,复杂度bomb。 然后我们仔细观察一下,这个答案显然是一个积性函数,我们可以把$n$拆成若干个$p^a$分别跑然后乘起来。 这样的话复杂度就没问题了,可以用矩阵快速幂优化转移过程,但是没有必要。 阅读全文
摘要:
"题目" 设$f_i$表示从$(a 4i,b 4i,c 4i,d 4i)$中选$n 4i$个排队的方案数。 那么我们可以容斥,答案为$\sum\limits_{i=0}^{lim}( 1)^i{n 3i\choose i}f_i$。 考虑一下这个$f$,它就是四个指数型生成函数卷起来$(\sum\l 阅读全文
摘要:
"题目" 设$f_i$表示经过$i$的期望次数。那么显然答案$ans_j=\sum\limits_{i=1}^nf_iP_{i,j}$。 我们可以轻松地列出转移式子: $$ f_1=\sum\limits_{j=1}^nf_jP_{j,1}+1 $$ $$ f_i=\sum\limits_{j=1} 阅读全文
摘要:
"Link" 首先我们可以列方程解出到某个点两种移动方式分别要走多少次。 那么这个就是经典的走路问题,答案为$x+y\choose x$。 然后我们给所有的点排个序,设$f_i$表示不经过其它$[1,i)$的点到达这个点的方案数。 转移的话容斥就行,枚举一个不经过的点$j$,记从$j$到$i$的方案 阅读全文
摘要:
"题目" 筛出$L$的每个质因子,限制条件实际上就是限制了每个质因子的出现次数$[l,r]$,且$l,r$都有正好取到的。 显然$L$最多有$8$个不同的因子,所以对每个数而言,我们对其每个质因子是否取到$l$或$r$状压,这样$[1,n]$的数就可以表示成一个$16$位的二进制数。 那么我们要求的 阅读全文