【一、Codeforces特别好的水题10枚】

精选CF大水题十题,之所以说是大水题应该比一般的水题难一点也就大一点。


一、cf 144 D Missile Silos http://www.codeforces.com/problemset/problem/144/D 

spfa但要扫描点扫描边


二、cf 141 C Queue http://www.codeforces.com/problemset/problem/141/C    

构造题,我的方法是先构造一个合法序列然后再为为剩下的值赋值,构造的身高在n以内。


三、cf 138B Digits Permutations http://www.codeforces.com/problemset/problem/138/B 

贪心,先枚举末尾为10的各种组合,然后找前面最多的9个数,要注意无法枚举到10的时候。


四、cf 137E Last Chance http://www.codeforces.com/problemset/problem/137/E

线段树,v<2*c,先统计cnt[i][k]表示长为i的前缀中原音和辅音的个数,然后两i,j,如果2cnt[i-1][2]-cnt[i-1][1]<=2cnt[j][2]-cnt[j][1]就是个好子串。

这样对arr[i] = 2cnt[i-1][2]-cnt[i-1][1]进行排序,然后找比它大的最大下标。


五、cf 128A Statues http://www.codeforces.com/problemset/problem/128/A

搜索。因为石像每次都要向下滚一格,那么可想而知后面几s它们都在哪里。先预处理出后面9s哪里可以走哪里不可以走,然后进行搜索。


六、cf 128B String http://www.codeforces.com/problemset/problem/128/B

优先队列应用。题意是要让我们找第k大的子串,因为k<=10万,所以可以用优先队列进行模拟,最开始先存入1个字符,因为最大的肯定是1个字符,然后出队再将出队的那个字符的下个合并,比如abc,先进a,b,c,然后a先出,接着ab进,就这样反复模拟...


七、cf 128C Games with Rectangle http://www.codeforces.com/problemset/problem/128/C

组合数学+DP。朴素的O(n*m*k)的DP很好想,但是复杂度太高TLE。先要想清楚,这题长和宽实际上是相互独立的,那么就可以用乘法原理,将长边算出来的方案数*宽边算出来的方案数。算长边的方案数可以用O(n*k)的DP计算。状态转移方程:dp[i][j] = dp[i-2][j-1] + 2*dp[i-3][j-1]+3*dp[i-4][j-1]...(n-1)*dp[i-n][j-1],然后进行优化,像这种可以从前面连续的状态转移过来的dp似乎都可以加个sum,然后dp[i][j] = sum + dp[i-1][j-1];


八、cf 218B.   Special Offer! Super Price 999 Bourles!  http://www.codeforces.com/problemset/problem/219/B

构造题。我一开始是从小往打构造,马上发现错了。然后就从大往小构造,方法是每次都把最后一位变成9,如果最后一位是9那么不调整,如果不是9那么前一位要减一,直到小于最小的数。



九、cf  218C. Color Stripe http://www.codeforces.com/problemset/problem/219/C

贪心或者DP,我是用贪心。先特判k==2的情况,这时候就两种情况要么奇数位为A偶数位为B,要么奇数位为B偶数位为A,答案是两种中转变次数较小的。k != 2的时候,就从前往后遍历,找一整块相同的字母,然后把第2,4...变成和后面一个不一样的字母即可,因为颜色大等于3,那么肯定可以找到一种和当前颜色不一样又和后面一个颜色不一样,而这样显然是最优方案。这题有人用O(n*m*m)的DP去写,我觉得很神奇,这样最多的运算量是3亿多。



十、cf 218D. Choosing Capital for Treeland http://www.codeforces.com/problemset/problem/219/D

树形DP。这题有个很巧妙的转换,那就是把边的方向转变成边权,如果正向那么边权威0,如果反向,那么边权为1.经过这样转换,问题就变成求以某点为根到其他各点的边权总和,然后求边权总和最小的那些点。这类树形DP很经典,做法是先以某点为根向叶子节点遍历,然后再以前面那点为根向下更新答案。


本文ZeroClock原创,但可以转载,因为我们是兄弟。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Codeforces的动态规划题单中,有基础DP、优化递推式、进阶DP、数据结构、优先队列、并查集、图论、最短路、最小生成树、数论、二分搜索等不同类型的题目。 代码中的内容是一个动态规划的例子,它采用了一个二维数组来存储中间结果,并通过递推的方式计算最优解。这个例子中,它使用了一个for循环嵌套来遍历数组,并利用状态转移方程更新数组中的值。最后输出的是计算得到的最优解。 要注意的是,这段代码是一个完整的程序,需要依赖于一些特定的输入数据才能正确运行。如果你想在Codeforces上找到更多的动态规划题目,可以访问它们的官方网站并浏览题库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [牛客练习_21314:codeforces (动态规划+01背包)](https://blog.csdn.net/qq_45750296/article/details/109587967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [leetcode双人赛-acm-challenge-workbook:acm-挑战-工作簿](https://download.csdn.net/download/weixin_38701340/19923844)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Codeforces Round #750 (Div. 2)E题(动态规划)](https://blog.csdn.net/m0_51506743/article/details/121083708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值