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;
    }
    
  • 相关阅读:
    hbase 简介
    Hadoop本地库介绍
    MapReduce:详解Shuffle过程
    eucalyptus,openstack
    openstack installing...
    今年2011
    wget代理设置(转载)
    openstack running
    python 升级到2.6(转载)
    高德地图Windowphone API学习地图定位与地图模式的切换
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12308820.html
Copyright © 2011-2022 走看看