• 题意:有一个长度\(n\)的序列,如果\(a_{i}<a_{i+1}\),那么可以选择删除\(a_{i}\)或者\(a_{i+1}\),再继续操作,问是否能够将序列删到只剩一个元素.

  • 题解:感觉这种序列变化的题目能用stack写,所以用数组模拟stack写了一发.

    ​ 首先,假如栈为空或者\(a_{i}<a_{i-1}\),那么就让\(a_{i}\)入栈.

    ​ 否则,如果栈中元素只有1个,那么我们不用做任何操作,若不止1个,让当前元素入栈,循环判断,如果栈中元素个数>2,那么我们删除小的(即\(a_{i-1}\),因为要确保删除后大的要比前面的大,这样才能继续删),而如果元素个数=2,那么我们删除大的(因为要确保前面的这个小的要比后面的大的数小),最后看栈中元素个数是否为1即可.

  • 代码:

    int t;
    int n;
    int x;
    int stk[N]; int main() {
    ios::sync_with_stdio(false);cin.tie(0);
    cin>>t;
    while(t--){
    cin>>n;
    int cnt=0;
    for(int i=1;i<=n;++i){
    cin>>x;
    if(cnt==0) stk[++cnt]=x;
    else if(stk[cnt]<x){
    if(cnt!=1){
    stk[++cnt]=x;
    while(stk[cnt]>stk[cnt-1]){
    if(cnt==2) cnt--;
    else if(cnt>2){
    int tmp=stk[cnt];
    stk[--cnt]=tmp;
    }
    else if(cnt==1) break;
    }
    }
    }
    else stk[++cnt]=x;
    }
    if(cnt==1) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    } return 0;
    }

最新文章

  1. redis配置文件redis.conf中文版(基于2.4)
  2. Error: Cannot find a valid baseurl for repo: base
  3. PHP实现文字水印图片
  4. Educational Codeforces Round 7 - E. Ants in Leaves
  5. 使用subst创建虚拟磁盘及设置分区卷标
  6. svn 1.8.11 命令行提交新添加文件错误
  7. poj2409
  8. mysql函数操作(3)
  9. leetcode 编辑距离
  10. 拿到阿里,网易游戏,腾讯,smartx的offer的过程 (转)
  11. [.Net Tools] 超強大的封裝工具 Advanced Installer
  12. 蓝桥杯-打印十字图-java
  13. [Swift]LeetCode937. 重新排列日志文件 | Reorder Log Files
  14. Java 控制语句:循环、条件判断
  15. 微信小程序 - 弹出层组件
  16. sql 判断 数据库 表 字段 是否存在
  17. 最大团 HDU-1530
  18. PHP qrcode 生成二维码
  19. MVC模式在Java Web应用程序中的实例分析
  20. Spring简洁版总结

热门文章

  1. 简单的JS+CSS实现网页自定义换肤
  2. NodeJS之npm、cnpm、npx、yarn
  3. Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之管理 Transactions
  4. Django前后端分离项目部署
  5. Docker逃逸
  6. hadoop 集群搭建 配置 spark yarn 对效率的提升永无止境 Hadoop Volume 配置
  7. 【LinuxShell】ps 命令浅析
  8. Canvas实现弧线时钟
  9. 洛谷P1858
  10. HTMl5 特点 标签语法 以及标签