首页 > 其他分享 >Codeforces Round #834 (Div. 3) G

Codeforces Round #834 (Div. 3) G

时间:2022-11-19 14:57:54浏览次数:49  
标签:cout 834 int Codeforces st flag Div

G. Restore the Permutation

对于一个序列 要是我们从数小a[i]的开始
每次给这个a[i]选一个最接近她的一个小的
显然我们这样是 最合法的
但是怎么保证字典序最小呢
显然我们需要从后往前做 这样可以让字典序最小
但是这样合法性会差吗?
我们构造一种最维和的序列
2 4 6
显然这样合法性还是不会差的
所以我们直接从后往前做即可

void solve(){
    int n;cin>>n;n>>=1;
    vector<int>a(n+1),b(n+1);
    set<int>st;
    for(int i=1;i<=n<<1;i++){
        st.insert(i);
    }
    int flag=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(st.count(a[i])==0)flag=1;
        st.erase(a[i]);
    }
    if(flag){
        cout<<-1<<endl;
        return;
    }
    for(int i=n;i>=1;i--){
        auto it=st.lower_bound(a[i]);
        if(it==st.begin()){
            cout<<-1<<endl;
            return;
        }else{
            it--;
            b[i]=*it;
            st.erase(it);
        }
    }
    for(int i=1;i<=n;i++)cout<<b[i]<<' '<<a[i]<<' ';cout<<endl;
}

标签:cout,834,int,Codeforces,st,flag,Div
From: https://www.cnblogs.com/ycllz/p/16906107.html

相关文章

  • 题解 Codeforces Round #834 (Div. 3) ABCDEF
    A.Yes-Yes?problem判断给定的字符串是否为无穷个YesYesYes拼接组成的字符串的连续子串。\(|S|\leq50\)。solution暴力。具体地,判断\(S,Ye+S,Y+S\)是否有一个是......
  • Codeforces Round #834 (Div. 3)
    ABC略。D.MakeItRound问题可以看成凑出尽可能多的\(10\)作为因子。注意到\(10\)的因子只有\(1,2,5,10\)。首先,\(n\)自己已经凑出来的\(10\)没必要拆开,并......
  • Codeforces Round #829 A+B+C+D 题解
    A.TheUltimateSquare题意询问\(T\)次,给定\(n\)块木板,第\(i\)块为\(1\times\lceil\fraci2\rceil\)大小,求能拼出的最大正方形边长数据范围:\(1\len\le10^9,1......
  • CodeForces - 15D Map
    题意:要在一片n*m的地上盖一个a*b的房子。这片地参差不齐,如果选定一个a*b的区域盖房子的话,需要把这片地铲地和最低点一样平,消耗的代价为铲掉高度之和。按代价大小求所有不重......
  • 解决div总是被select遮挡的问题
    <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""​​http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd​​​"><htmlxmlns="​​​http://ww......
  • POJ 1845Sumdiv(数论)
    SumdivTimeLimit:1000MS MemoryLimit:30000KTotalSubmissions:20041 Accepted:5060DescriptionConsidertwonaturalnumbersAandB.LetSbethesumof......
  • Codeforces Round #673 (Div. 2) Problem A
    今天的题。本来打算把比赛坚持打完的,但是因为生病了,还是早点睡吧,把第一题摸了。题面如下:BTheroisapowerfulmagician.Hehasgotnpilesofcandies,thei-thpile......
  • Codeforces Round #672 (Div. 2) ProblemB
    9月25日的打卡。为什么又过了零点?因为和朋友去摸鱼了。今天讲一下昨晚比赛的第二题。题面如下:Danikurgentlyneedsrockandlever!Obviously,theeasiestwaytoge......
  • Codeforces Round #672 (Div. 2) Problem A
    今日份的题目。(指9月24日,因为比赛从晚上10点半持续到12点半)问题A是水题,题面如下(大半夜了,就不翻译了,赶着睡觉)(其他题目明天再发)Wheatleydecidedtotrytomakeatestcha......
  • codeforces 2000左右dp题目练习
    栾巨的dp题单,刷完他要v我500可以提升dp水平。1.YaroslavandTwoStrings白给题,令\(f_{i,0/1,0/1}\)表示前\(i\)位,有无小于,有无大于,根据每位的字符转移即可。2.To......