706C Hard problem
传送门
镜像
题意:给定n个字符串,反转每个字符串有代价c[i],求使得所有字符串按字典序排列所需的最小代价,如果不可能,输出-1;
看一眼数据范围和题意大概就猜出来是用二维了,0代表不反转,1代表反转,转移方程也很容易就可以写出来
1 | dp[i][1]=min(dp[i-1][0]+c[i],dp[i-1][1]+c[i]); |
如果该情况合法就去转移,但是要注意,如果某种情况不合法,那么该情况就不能用于后面的转移了,因此我开了另一个数组去记录是否合法,同时记录是否发生了转移,如果没有,说明无法满足题意,直接输出-1;
1 |
|
575H Bots
传送门
镜像
题意:两个机器人分别可以走0-n步,且分别会把走过的步数染成红色或蓝色,求所有的染色情况数。
想出答案并不难,明显答案应该是$$\sum_{i=0}^n\sum_{j=0}^nC_{i+j}^{i}$$,难点在化简求值,首先关于组合数有恒等式$$ C_{n+1}^{m+1}=C_{n}^{m+1}+C_{n}^{m}$$
根据这个恒等式可以将第一个求和化简为$C_{i+n+1}^{i+1}$,之后在化简第二个求和时,先加上$C_{n+2}^{1}$,就可以把答案化简为$C_{2n+2}^{n+1}+C_{n+1}^{1}$,之后减去$C_{n+2}^{1}$,则答案即为$C_{2n+2}^{n+1}-1$的值取模。
卢卡斯定理套个板子就OK
1 |
|
15C Industrial Nim
直接贴大佬的题解啦
写的比我好多了Orz
传送门