CF1375C Element Extermination 题解

结论:存在策略使得 a 只剩下一个元素 a1<an


充分性证明:观察到操作过程中 a 最左端的数不降,a 最右端的数不增。

证明:对最左端的数操作时,有 a1<a2,删除 a2 后最左端的数不变,删除 a1 后最左端的数变大。

最右端的数同理。

若存在策略,则删到 |a|=2 时有 a1<a2

又因为 a 最左端的数不降,a 最右端的数不增,所以原序列中 a1<an


必要性证明:若 a1<an,存在如下策略:

  1. 找到 k=minax>a1x
  2. ak1<ak,删除 ak1 直到 k=1
  3. 重复过程 1,2 直到 a 只剩下一个元素。

#include <cstdio>
int T, n, a[300050];
int main()
{
    scanf("%d", &T);
    while (T--)
    {
        scanf("%d", &n);
        for (int i = 1; i <= n; ++i)
            scanf("%d", a + i);
        puts(a[1] < a[n] ? "YES" : "NO");
    }
    return 0;
}
posted @   Jijidawang  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示