cf 1144G 贪心
一个序列看能不能拆成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 贪心相关推荐
- java echarts 散点图,echarts在地图上绘制散点图(任意点)
项目需求:在省份地图上绘制散点图,散点位置不一定是哪个城市或哪个区县,即任意点 通过查询官网文档,找到一个与需求类似的Demo:https://www.echartsjs.com/gallery/ed ...
- 【CF 732E】Sockets(优先队列+贪心)
[CF 732E]Sockets(优先队列+贪心) 题目大意: n台电脑,m个供电器. 每台电脑和每个供电器都有电量,当电脑i的电量和供电器j电量相同时,可以连接供电. 现在提供变压器,可以连接到供电 ...
- CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)
ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...
- cf 1059e 思维 贪心 树
参考博客:http://www.cnblogs.com/waldenlake/p/9750249.html 题意:将一棵n个点的带权有根树剖分成尽量少的链,使得 (1)链的两个端点是祖先关系 (2)链 ...
- 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 ...
- 8.6 edu25 ,577#div2 CF补题(二分 ,dp 与 贪心
两道题 1.edu 25 D. Suitable Replacement 题意:给定字符串s,t,s中'?'字符可以以任何字符替换,问如何替换 可使 替换后的s重新排序与t的匹配次数最多(len_t& ...
- CF 1253D-Harmonious Graph-并查集+贪心
Description You're given an undirected graph with n nodes and m edges. Nodes are numbered from 1 to ...
- 贪心 CF 333B Chips
题目链接: http://codeforces.com/problemset/problem/333/B 题目意思: 给一个n*n的矩阵,里面有m个障碍点,问最多可以在不是角落的边框上放多少个点,使得 ...
- CF 1718 A2. Burenka and Traditions (hard version) 贪心 1900
题意:一个长度为 n 的数组 a,可以选择 l,r(1 ≤ l ≤ r ≤ n),使 al 到 ar 所有数都异或上任意一个数 x,需要花费 ⌈r − l + 1 / 2⌉ 秒,求将数组所有数变为 ...
最新文章
- 第一代电子计算机诞生的国家是( ),计算机基础知识习题.doc
- 修改XtraMessageBox的内容字体大小
- vs编译c语言文件不读取对象式宏,C代码的条编译宏windows的VS和linux下gcc编译不一样...
- 【项目实战课】快速上手目标检测任务,MMdetection框架详细解读与案例实战
- 关于 SAP Spartacus 和 SmartEdit 集成的问题
- Ubuntu下安装OpenSSH Server并在客户端远程连接Ubuntu
- 第五章--数据库中间层实现读写分离
- 算法导论--最小生成树(Kruskal和Prim算法)
- 5gnr帧结构特点有哪些_低合金结构钢有哪些特点?
- 机器学习读书笔记:样本降维
- Android性能优化(第一章)
- 企业微信双开及三开的方法
- HTML制作简单课程表
- Python 四大名著词频画图
- 【科普】Scrum——从橄榄球争球到敏捷开发
- 如何将开发好的安卓应用程序发布到安卓市场或商店
- 他励直流电动机的启动
- R语言笔记-数值型变量的描述统计
- 京瓷p5021cdn快速复印_功率实测 节能出色_京瓷 P5021cdn_办公打印评测试用-中关村在线...
- 大数据Flink最强手册