首页 > 其他分享 >Codeforces Round #740 C

Codeforces Round #740 C

时间:2023-01-18 16:25:00浏览次数:154  
标签:740 int rev Codeforces 我们 flag Round

C. Bottom-Tier Reversals

题链
这种翻转方式 显然我们是要从后往前固定元素
我们先来判断无解情况 因为他只允许在奇数位置rev 那么我们可以发现每个位置的奇偶性都不会改变的
所以钥匙一开始给出的序列违背了 就是无解
因为他的rev都是至少两个位置间隔 我们肯定要将两个东西打包放在后面去
我们假设 我们有 。。。。。i。。。。i+1。。。。i是奇数
我们可以现在rev i 将i放最前面 i 。。。。。。。i+1 。。。。。
然后将i和i+1贴贴 。。。。。。。i i+1 。。。。。。
然后再将i+1后面那个位置rev 。i+1 i 。。。。。。。。
最后我们再 rev 3 i i+1 。。。。。。。。。。
然后一次rev 全部就可以放在后面去了
刚好五次 符合题目要求

int n,pos[N],a[N];
vector<int>ans;
void rev(int l,int r){
    reverse(a+l,a+r+1);
    ans.push_back(r);
    for(int i=1;i<=r;i++)pos[a[i]]=i;
}
void solve(){
    cin>>n;
    int flag=0;
    ans.clear();
    for(int i=1;i<=n;i++){
        cin>>a[i],pos[a[i]]=i;
        if(a[i]%2!=i%2)flag=1;
    }
    if(flag){cout<<-1<<endl;return;}
    for(int i=1;i<n;i+=2){
        rev(1,pos[i]);
        rev(1,pos[i+1]-1);
        rev(1,pos[i+1]+1);
        rev(1,3);
        rev(1,n-i+1);
    }
    rev(1,n);
    cout<<ans.size()<<endl;
    for(auto i:ans)cout<<i<<' ';cout<<endl;
}

标签:740,int,rev,Codeforces,我们,flag,Round
From: https://www.cnblogs.com/ycllz/p/17060096.html

相关文章

  • Codeforces Global Round 16 E
    E.BudsRe-hanging题链观察样例我们发现我们要尽可能的分解出来bud然后再来组合拼在一起是最优的当然我们可以从深度最深的开始判断是不是bud但是我们再观察发现只......
  • Codeforces Round 844
    目录写在前面ABCD写在最后写在前面比赛地址:https://codeforces.com/contest/1782。这两天一个人在家自己糊弄饭吃,炒饭切上一整根腊肠实在是太爽了,比杀软大学的杀软小几......
  • Codeforces Round #742 D
    D.ExpressionEvaluationError题链观察样例发现我们应该应该减少进位并且必须要进位的话我们也是选择小的位来进这样我们的做法就完成了肯定是将所有位都拆开先......
  • Codeforces Round #844 (Div. 1 + Div. 2, based on VK Cup 2022 - Elimination Rou
    C.EqualFrequencies(贪心)题目大意给定一个由小写字母构成的字符串\(s\),若该字符串中所有字母出现次数相等,则称其为“平衡字符串”。给定一个字符串\(s\),问将其修改为......
  • Educational Codeforces Round 14
    EducationalCodeforcesRound14AFashioninBerland做法:模拟代码:voidsolve(){intn;cin>>n;intans=0;for(inti=1;i<=n;i++){......
  • Codeforces Round #844 (Div. 1 + Div. 2, based on VK Cup 2022 - Elimination Round
    比赛链接A题意设计一条线路要贴着6个墙面走,从\((a,b)\)到\((f,g)\),线路长度最短。题解知识点:模拟。分类取最短即可。时间复杂度\(O(1)\)空间复杂度\(O(1)\)......
  • Codeforces Round #844 (Div. 1 + Div. 2, based on VK Cup 2022 - Elimination Round
    Preface打的好鸡啊这把,C写的糙了,100行不说还犯了好多nt错误,最后1min看出来一个符号写反了才过下次卡题的时候一道题挂三次以上就要换题了的说,这次的D基本一眼秒的,如果先......
  • Codeforces Round #844 (Div.1 + Div.2) CF 1782 A~F 题解
    点我看题A.ParallelProjection我们其实是要在这个矩形的边界上找一个点(x,y),使得(a,b)到(x,y)的曼哈顿距离和(f,g)到(x,y)的曼哈顿距离之和最小,求出最小值之后加h就是......
  • Codeforces Round #844 (Div.1 + Div.2) CF 1782 A~F 题解
    点我看题A.ParallelProjection我们其实是要在这个矩形的边界上找一个点(x,y),使得(a,b)到(x,y)的曼哈顿距离和(f,g)到(x,y)的曼哈顿距离之和最小,求出最小值之后加h就是......
  • Codeforces Round #844 (Div.1 + Div.2) CF 1782 A~F 题解
    点我看题A.ParallelProjection我们其实是要在这个矩形的边界上找一个点(x,y),使得(a,b)到(x,y)的曼哈顿距离和(f,g)到(x,y)的曼哈顿距离之和最小,求出最小值之后加h就是......