CF 刷题计划 3
CF 刷题计划
CF 刷题计划 2
某种意义上算是继承。至少从形式和题目编号上。
NOIP 结束了。
NOIP 炸飞了。
NOIP 三等了。
无所谓,我会在明年 NOIP 300+ 然后进队!!!111
差不多可以说是准备省选了。
这里应该算是思维水平方面的。
difficulty \([2000,2500]\)
Link:https://codeforces.com/problemset/page/5?tags=2000-2500
CF1332F
设 \(f_{i,j}\) 为节点 \(i\) 状态为 \(j\) 的方案数。
\(j=0\) 代表 \(i\) 节点与父亲不连边
\(j=1\) 代表 \(i\) 节点选并且与父亲连边
\(j=2\) 代表 \(i\) 节点不选并且与父亲连边
记 \(v\) 是 \(i\) 节点的儿子。
\(f_{i,2}=\prod (f_{v,0}+f{v,1}+f_{v,2})\)
\(f_{i,1}=\prod (f_{v,0}+f_{v,2})\)
\(f_{i,0}=f_{i,2}+f_{i,1}-\prod f_{v,0}\)
答案为 \(f_{1,0}-1\)
https://codeforces.com/contest/1332/submission/185452369
CF1333D
最小的次数其实就是每次尽量交换更多的即可,最大的就是每次交换一对。
然后就得到一个 \(k\) 的区间,在这个区间内的输出构造方法,否则直接输出 \(-1\)
https://codeforces.com/contest/1333/submission/185455452
CF1333E
\(n=1,2\) 无解。
\(n=3\) 直接暴搜出一个结果,要求起点是左上角
\(n>3\) 直接从右上->右下->左下或者左下->右下->右上(取决于 \(n\) 的奇偶性),这样 \(n\) 就减小了,然后直接递归
https://codeforces.com/contest/1333/submission/185628259
CF1333F
考虑从全部都有开始减。
显然如果 \(a \mod b=0\),删 \(a\) 更优。
那么如果 \(a\) 存在,\(a\) 的因数肯定都在,那么每个数的贡献就是最大的真约数。
所以把所有数的真约数筛出来出来,排个序输出即可。
https://codeforces.com/contest/1333/submission/185876864
CF1334E
显然路径是 \(x\to\gcd(x,y)\to y\)
增加、减少因子的时候可以任意,预处理阶乘和阶乘逆元算就行。
https://codeforces.com/contest/1334/submission/186870714
CF1334F
看样子不大可做,咕。
CF1336C
把 \(T\) 后面补上通配符,然后直接 DP(设 \(f_{l,r}\) 为目标字符串为 \(T_lT_{l+1}\dots,T_r\) 的方案数)。
注意操作次数可以小于 \(|S|\)
https://codeforces.com/contest/1336/submission/186875394
CF1342E
考虑每一行都有车,那么 \(n-k\) 列是有车的。反之亦然(特判 \(k=0\) 答案不用乘二)
单侧答案就是 \(\binom{n}{n-k}*(n-k)!*S(n,n-k)\),\(S(x,y)\) 代表第二类斯特林数。
https://codeforces.com/contest/1342/submission/187140129
CF1343E
考虑路径为 \(a\to t \to b \to t \to c\)
那么 \(t\to b\) 这一段走两次,赋最小的边权,其他的赋次小的。枚举中转点 \(t\) 即可。
https://codeforces.com/contest/1343/submission/187142619