cf edu 1600
1|0600A. Extract Numbers
划分一下然后特判即可。
2|01342C. Yet Another Counting Problem
3|01455D. Sequence and Swaps
可以注意到的是每次能够被交换的数一定是递增的,同理每次能够放回去的数也是递增的,所以选择的一定是递增的。所以我们从小到大枚举遇见可以交换的就一定要交换,统计交换次数即可。
4|01398C. Good Subarrays
求前缀和后,则题目要求。所以可以转换为。这样我们统计出现的次数,然后用组合数就可以计算了。
5|01389B. Array Walk
我们枚举向左跳步,则向右跳步,所以最终可以跳到步。然后就是选择最大的两个相邻的数反复走次即可。
6|01373D. Maximum Sum on Even Positions
首先要想到的是有效的翻转区间一定是一段长度为偶数的区间。
如果翻转的区间是以奇数开头的,则对于区间内所有奇数下标的点相当于的贡献。
而我们要选择一个字段贡献最大,这样就转换成了最大字段和的问题。
翻转区间以偶数开头类似,只是贡献变为了
7|01334C. Circle of Monsters
第一个攻击的怪兽无法接受前一个怪兽造成的爆炸伤害。最朴素的的方法自然是枚举第一个攻击的怪兽,然后依次攻击后面的怪兽。其实可以发现的是,每一个怪兽造成的受到的爆炸伤害是。所以其实我么可以贪心的选择受到爆炸伤害最小的怪兽作为第一个怪兽。
8|01295C. Obtain The String
首先我们对串来进行预处理,处理出数组表示位置之后字母第一次出现的位置。
这样的话,我们用一个指针标记对于串当前匹配的到位置,然后每次贪心的向后移动即可。
9|01303C. Perfect Keyboard
我自己的想法实际上是建图,然后跑一个类似拓扑序的东西?但是看题解明显要简单很多。
题解的思路其实就是贪心的放就可以了。我们遍历密码序列,序列中每一个元素都有两种状态,在答案序列中和不在答案序列中。如果在答案序列中就要检查和密码序列的上一位是否相邻?如果不在则一点要放在密码序列上一位的两侧,检查两侧是否可以放下。
10|01327C. Game with Chips
注意到限制并不是而是。点的位置根本不影响答案,先把所有的点移动到一个角,然后遍历整张图即可。
__EOF__

本文作者:PHarr
本文链接:https://www.cnblogs.com/PHarr/p/17606981.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
本文链接:https://www.cnblogs.com/PHarr/p/17606981.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
标签:
CodeForces
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通