一个序列看能不能拆成1个严格上升子序列,和1个严格下降子序列,元素相对位置不能变。

想着最长上升子序列照一次,最长下降子序列找一次,再判断合不合法WA了。

官方题解看不太懂。

评论区看到roundgod给出了一个贪心,每次我尝试吧a[i]丢到上升序列和下降序列中,如果都不能丢,就没有方案,如果一个能丢,就丢,如果两个都能丢进去,那么看a[i+1],如果a[i]<a[i+1]那么吧a[i]放上升序列,否则放到下降序列。

如果a[i]<a[i+1]的时候,如果你放到下降序列,那么a[i+1]就只能放到下降序列了,也就是相当于下降序列的末尾元素突然变的很低,而如果把a[i]放到上升序列,a[i+1]有可能还是可以两个序列都能放,这样机会就更多了。

#include<bits/stdc++.h>
#define maxl 200010
using namespace std;int n;
int a[maxl],b[maxl],c[maxl];
int flag;
bool in[maxl];inline void prework()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]),a[i]+=1;
}inline void mainwork()
{flag=true;if(a[1]<a[2])b[++b[0]]=a[1],in[1]=1;elsec[++c[0]]=a[1],in[1]=0;int cnt=0;for(int i=2;i<=n;i++){cnt=0;if(a[i]>b[b[0]] || b[0]==0)cnt++;if(a[i]<c[c[0]] || c[0]==0)cnt++;if(cnt==0){flag=false;return;}if(cnt==1){if(a[i]>b[b[0]] || b[0]==0)b[++b[0]]=a[i],in[i]=1;if(a[i]<c[c[0]] || c[0]==0)c[++c[0]]=a[i],in[i]=0;}if(cnt==2){if(a[i]<a[i+1])b[++b[0]]=a[i],in[i]=1;elsec[++c[0]]=a[i],in[i]=0;}}
}inline void print()
{if(!flag)puts("NO");else{puts("YES");for(int i=1;i<=n;i++)if(in[i])printf("0%c",(i==n)?'\n':' ');elseprintf("1%c",(i==n)?'\n':' ');}
}int main()
{prework();mainwork();print();return 0;
}

cf 1144G 贪心相关推荐

  1. java echarts 散点图,echarts在地图上绘制散点图(任意点)

    项目需求:在省份地图上绘制散点图,散点位置不一定是哪个城市或哪个区县,即任意点 通过查询官网文档,找到一个与需求类似的Demo:https://www.echartsjs.com/gallery/ed ...

  2. 【CF 732E】Sockets(优先队列+贪心)

    [CF 732E]Sockets(优先队列+贪心) 题目大意: n台电脑,m个供电器. 每台电脑和每个供电器都有电量,当电脑i的电量和供电器j电量相同时,可以连接供电. 现在提供变压器,可以连接到供电 ...

  3. CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)

    ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...

  4. cf 1059e 思维 贪心 树

    参考博客:http://www.cnblogs.com/waldenlake/p/9750249.html 题意:将一棵n个点的带权有根树剖分成尽量少的链,使得 (1)链的两个端点是祖先关系 (2)链 ...

  5. cf#401(Div. 2)B. Game of Credit Card(田忌赛马类贪心)

    题干: After the fourth season Sherlock and Moriary have realized the whole foolishness of the battle b ...

  6. 8.6 edu25 ,577#div2 CF补题(二分 ,dp 与 贪心

    两道题 1.edu 25 D. Suitable Replacement 题意:给定字符串s,t,s中'?'字符可以以任何字符替换,问如何替换 可使 替换后的s重新排序与t的匹配次数最多(len_t& ...

  7. CF 1253D-Harmonious Graph-并查集+贪心

    Description You're given an undirected graph with n nodes and m edges. Nodes are numbered from 1 to ...

  8. 贪心 CF 333B Chips

    题目链接: http://codeforces.com/problemset/problem/333/B 题目意思: 给一个n*n的矩阵,里面有m个障碍点,问最多可以在不是角落的边框上放多少个点,使得 ...

  9. CF 1718 A2. Burenka and Traditions (hard version) 贪心 1900

    题意:一个长度为 n 的数组 a,可以选择 l,r(1 ≤ l ≤ r ≤ n),使 al 到 ar 所有数都异或上任意一个数 x,需要花费  ⌈r − l + 1 / 2⌉ 秒,求将数组所有数变为 ...

最新文章

  1. 第一代电子计算机诞生的国家是( ),计算机基础知识习题.doc
  2. 修改XtraMessageBox的内容字体大小
  3. vs编译c语言文件不读取对象式宏,C代码的条编译宏windows的VS和linux下gcc编译不一样...
  4. 【项目实战课】快速上手目标检测任务,MMdetection框架详细解读与案例实战
  5. 关于 SAP Spartacus 和 SmartEdit 集成的问题
  6. Ubuntu下安装OpenSSH Server并在客户端远程连接Ubuntu
  7. 第五章--数据库中间层实现读写分离
  8. 算法导论--最小生成树(Kruskal和Prim算法)
  9. 5gnr帧结构特点有哪些_低合金结构钢有哪些特点?
  10. 机器学习读书笔记:样本降维
  11. Android性能优化(第一章)
  12. 企业微信双开及三开的方法
  13. HTML制作简单课程表
  14. Python 四大名著词频画图
  15. 【科普】Scrum——从橄榄球争球到敏捷开发
  16. 如何将开发好的安卓应用程序发布到安卓市场或商店
  17. 他励直流电动机的启动
  18. R语言笔记-数值型变量的描述统计
  19. 京瓷p5021cdn快速复印_功率实测 节能出色_京瓷 P5021cdn_办公打印评测试用-中关村在线...
  20. 大数据Flink最强手册

热门文章

  1. 装配式施工在建筑装修中的应用研究
  2. 职场智慧:君子应处木雁之间,当有龙蛇之变
  3. 差之毫厘:etcd 3 完美支持 HTTP 访问
  4. 搬运视频怎么做成原创 | 短视频批量伪原创
  5. lcd与led的区别
  6. 黑苹果2k显示器开启hidpi_黑苹果无核显开启macOS-ipad随航功能
  7. 支付宝app登录授权的infoStr授权登录流程
  8. 打开计算机桌面上没有跑哪里去了,Win8.1我的电脑图标跑哪去了怎么放桌面
  9. 什么是抽象类?什么是抽象方法?
  10. PDF编辑方法,怎么删除PDF中的一页