标签:blog std span continue ios class int log pre
明天集训结束......!
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <map> using namespace std; map<int,int> flag; int n,x; int main() { int ceng=1,sum=0;//深度,点的数量 scanf("%d",&n); while(n--) { scanf("%d",&x); if(x<ceng)//小于这个深度不行,已经被占用 { printf("No\n"); continue; } printf("Yes\n"); while(x>=0&&flag[x])//两点合成它们上面的点 { flag[x]=0; sum--;//点的数量减少一个 x--; } sum++; flag[x]=1;//标记找到的最上面的点 if(ceng<5e5+10) { while(flag[ceng]) ceng++;//更新深度 } ceng=min(ceng,sum);//如sum为1,层为2,x=1也成立,故取最小 if(!x) ceng=1e9+100;//全部占满,则都不再成立 } return 0; }
标签:blog std span continue ios class int log pre
原文地址:http://www.cnblogs.com/Wangwanxiang/p/7460704.html