CF1841
题意:给一个长度为
问:谁有必胜策略?
很简单的结论题。
如果
题意:定义美丽序列为:可以选择一个前缀
给出一个序列
-
如果
中加入 后,依然是美丽数列,输出 并在 中加入 ; -
否则输出
。
美丽的序列应该满足下列条件至少一个:
-
单调不减;
-
由两个单调不减的序列拼接而成,且末尾元素
首位元素。
因此,我们用一个变量记录当前是否依然保持单调不减;如果已经不再单调不减,记录第一个单调不减的序列末尾位置,然后判断是否能加入新元素。
题意:给出一个由字母 A,B,C,D,E
组成的序列,每个字母依次代表
整个序列的值就是每个字符对应的值乘以它的符号。
现在可以将一个位置上的字符更改,问:改后最大的值是多少?
考虑什么时候更改一个位置会更优。
-
增加。如果这个位置不是从左看第一个出现,一定不会最优,因为可以选择更左的同一个字符的位置。这样增加的量不变,且因增加字符而导致的减少不会增加。
-
减少,如果这个位置不是从右看第一个出现,一定不会最优,因为可以选择更右的同一个字符的位置。这样减少的量不变,且因减少字符而导致的增加不会减少。
所以,考虑更改每种字符出现的第一个和最后一个位置即可。
题意:给出
-
每组内的两个区间相交(只有一个点也算);
-
不同组之间的任何区间不相交。
考虑两个组
转换思路
这个太麻烦了,不如换个思路:考虑
妙蛙!!
把给出的区间中相交的都算出并集线段,现在的目的就是在这些所有的并集线段中找出最多不相交的线段。
这是贪心的经典问题。左端点排个序依次选即可。
有一个
你可以把
一个矩阵的美丽程度是满足这样的格子个数:该格子自身包含一个数
请求出矩阵的最大美丽值。
每一列的黑色格子把每行分成了若干白色段。
考虑放下连续
可见,我们要尽可能选取较长的段,这样
现在的问题变成:如何求出每种长度的段有多少种?
考虑第
以第
我们考虑用单调栈维护:
枚举
否则 pop
掉。
补充
上面的过程其实可以简化:只要 pop
,在 pop
的一瞬间统计答案。
整个过程就只有维护单调栈的复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!