zoukankan      html  css  js  c++  java
  • Codeforces 1262B Box

    思路:

    1.从前往后遍历原序列,如果后减前大于一则将缺失的值放入队列中,如果前后两次一样则从队列中取一个值出来填上去,如果前小于后,那就非法了;
    2.最后查看队列是否为空,不为空说明缺失值都填补上去了,那就输出序列;

    代码:

    #define IOS ios::sync_with_stdio(false);cin.tie(0)
    #include<bits/stdc++.h>
    using namespace std;
    typedef pair<int,int> P;
    typedef long long LL;
    #define fi first
    #define sc second
    #define mp(a,b) make_pair(a,b)
    #define pb(a) push_back(a)
    #define rp(i,n) for(int i=0;i<n;i++)
    #define rpn(i,n) for(int i=1;i<=n;i++)
    const int MAX_N=1e5+99;
    int q[MAX_N];
    int main(){
    	IOS;
    	int t;
    	cin>>t;
    	while(t--){
    		int n;
    		cin>>n;
    		int pre=0;
    		queue<int> que;
    		bool flag=true;
    		rp(i,n){
    			cin>>q[i];
    			int pp=q[i];
    			if(!flag) continue; 
    			if(q[i]-pre>1){
    				for(int j=pre+1;j<q[i];j++) que.push(j);
    			}else if(q[i]-pre==0){
    				if(que.empty()) flag=false;
    				q[i]=que.front();
    				que.pop();
    			}else if(q[i]<pre) flag=false;
    			pre=pp;
    		}
    		if(que.empty()&&flag){
    			cout<<q[0];
    			for(int i=1;i<n;i++) cout<<' '<<q[i];
    		}else cout<<-1;
    		cout<<'
    ';
    	}
    	return 0;
    }
    
  • 相关阅读:
    深入NET框架
    解决idea中maven的pom文件不会自动下载jar包问题
    JSP中的作用域
    转发与重定向
    JSP内置对象
    JNDI与连接池
    文件上传
    七大设计原则
    第六章 初始继承和多态
    C#和.NET框架
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12308820.html
Copyright © 2011-2022 走看看