735D Taxes
传送门
镜像传送门
数论题(1600)
Mr. Funt有收入为n,他为了减少自己需要缴纳的税额(DD行为),想要把收入分成k份(每份收入>1),每份单独缴税。对于每份收入,需要缴纳的税款为其最大因子(不为自己,如果是质数就是1)。帮助Mr. Funt最小化他缴纳的税款。
首先如果n为质数就可以不分了,1一定是最小的。
对于偶数,结果必定大于等于2,分两个质数就是2,分一个两个偶数就大于2,根据哥德巴赫猜想,任一大于2的偶数都可写成两个素数之和,那么偶数的答案就是2。
对于奇数,必定会分成一奇一偶,而偶数小于等于2(2的情况为1),而且一定可以找到一个质数充当分出来的质数,那么奇数的答案就是小于等于3,如果奇数-2为质数,那么就取最小值2,其他情况为3.
(就当补充知识树了~~
1 |
|
573B Bear and Blocks
传送门
镜像传送门
dp水题(迫真
1800
Limak是只小熊,他堆了一行塔,每座塔都有相应的高度,每次Limak可以把所有没有被完全包围的砖块摧毁,询问要多少次才能将所有塔摧毁(tm熊的力量!(滑稽))
什么是完全包围呢,如图:
(黑色部分即为被完全包围的砖块。)
根据题意,我们可以很快得到几条规律:
1、高度为1的在第1轮就毁掉
2、第i座塔最多存活h[i]轮(每座塔最上面的砖块每轮必被摧毁)
3、从左向右扫,第i+1座塔最多比第i座塔多存活1轮,从右向左同理
现在转移方程就很好写了,开两个数组存分别存从左到右和从右到左(规律3)每座塔的存活轮数,那每个塔的存活轮数就是两个数组中对应位置的最小值,最后遍历每座塔取一个最大值就好了。
1 |
|
374C Inna and Dima
点这里去这道题恰狗粮
点这里去恰镜像狗粮
dfs+dp(2000)
Inna和Dima买了一张n*m的桌子,每个格子里都写有D、I、M、A中某个字母,Inna特别爱Dima,所以Inna想从某个D开始按照D-I-M-A-D-I……的顺序经过尽量多完整的“DIMA”,如果一个都没有,那么输出“Poor Dima!”,如果可以一直走下去(存在环),输出“Poor Inna!”,否则输出最多能走的个数。
先处理给的方格图,对走向合法的组合连单向边,开个dp存到当前节点的最长路径长度,然后从每个D开始dfs就好,但是会T,加个剪枝就好了,如果下一个节点的dp可以更新,就dfs下一个节点。最后取所有A的最大值除以4即可。
1 |
|