首页 > 其他分享 >Codeforces Round #704 (Div. 2) D

Codeforces Round #704 (Div. 2) D

时间:2022-11-09 16:33:09浏览次数:56  
标签:704 Codeforces int k0 Div Round

D. Genius's Gambit

构造
要是a>=k的构造很好想出来
但是a+b-1>k&&k>a时 其实也可以构造出来
我们考虑让中间的一些1经过减法变成0 然后到高位时再与低位的1相减
例如:
11111100000
10111100001
这样我们最多就可以得到a+b-2个1了!
最后注意特判当b1时 只有k0才有解
当a0时 也只有k0时才有解

void solve(){
    int a,b,k;cin>>a>>b>>k;
    if(b==1){
        if(!k){
            YES
            for(int i=1;i<=b;i++)cout<<1;
            for(int i=1;i<=a;i++)cout<<0;
            cout<<endl;
            for(int i=1;i<=b;i++)cout<<1;
            for(int i=1;i<=a;i++)cout<<0;
            cout<<endl;
        }else{
            NO
        }
        return;
    }
    if(a==0&&k){
        NO return;
    }
    if(a+b-1>k){
        YES
        if(a>=k) {
            int cnt = a - k;
            for (int i = 1; i <= b; i++)cout << 1;
            for (int i = 1; i <= a; i++)cout << 0;
            cout << endl;
            for (int i = 1; i < b; i++)cout << 1;
            while (k--)cout << 0;
            cout << 1;
            for (int i = 1; i <= cnt; i++)cout << 0;
            cout << endl;
        }else{
            for (int i = 1; i <= b; i++)cout << 1;
            for (int i = 1; i <= a; i++)cout << 0;
            cout<<endl;
            int cnt=a+b-1-k,cnt1=b-cnt;
            while(cnt--)cout<<1;
            cout<<0;
            for(int i=1;i<cnt1;i++)cout<<1;
            for(int i=1;i<=a-1;i++)cout<<0;
            cout<<1;
            cout<<endl;
        }
    }else{
        NO
    }
}

标签:704,Codeforces,int,k0,Div,Round
From: https://www.cnblogs.com/ycllz/p/16874248.html

相关文章

  • Codeforces Global Round 16 F | CF1566F Points Movement
    https://www.luogu.com.cn/problem/CF1566Fhttps://codeforces.com/contest/1566/problem/F这类有关线段的问题我通常都是先观察线段的包含/交对线段是否保留的影响,以约......
  • 指定div滚到到指定位置
    获取页面某一元素的绝对X,Y坐标varX=$('#ElementID').offset().top;varY=$('#ElementID').offset().left;获取相对(父元素)位置:varX=$('#ElementID').position(......
  • Codeforces Round #740 (Div. 1, based on VK Cup 2021 - Final (Engine)) B
    B.UptheStrip考虑dpdp[i]表示当前i位置的cnt考虑转移我们对于第一个操作显然只用维护一个后缀和即可dp[i]+=s[i+1]对于第二个操作也很简单我们知道i的值z除一......
  • Codeforces Round #715 (Div. 1) A
    A.BinaryLiterature我们观察发现就是找两个串要是最长公共子序列大于等于n的我们就一定可以构造出一个出来但是传统的最长公共子序列是n2的我们考虑一些特殊的性质......
  • JavaScript实现滚动条滚动给div加颜色
    实现原理当滚动的距离大于某一个元素到页面顶部的距离时候,给元素设置实现步骤1.获取某一个元素到页面顶部的距离2.如果距离大于零则给div加上颜色,如果等于0,即归位的时......
  • 为什么我们必须使用div?
    那么,为什么我们必须使用div?如果您查看Mozilla的html5元素列表,则每个元素都有语义,然后我们进入<div>并显示:“表示没有特殊含义的通用容器。......
  • codeforces 1750_D
    https://codeforces.com/contest/1750/problem/D#include<iostream>#include<vector>#include<cmath>#include<map>#include<unordered_map>#include<unordered_set>......
  • Codeforces试题乱做 Part9
    他挥毫泼墨落笔她舞袖梦里佳期戏中情戏中意陌路人相逢在花天锦地\(\text{[CF1736E]SwapandTake}\)\(\color{green}{\text{[EASY]}}\)我们考虑最终最优的答案中......
  • vue.js3:div上添加右键菜单([email protected])
    一,js代码:<template><div><divstyle="width:800px;margin:auto;display:flex;flex-direction:column;"><div>请选择上传图片:<inputtype="......
  • CF1743 Codeforces Round #832 (Div. 2)
    A.TwoGroups签到题,把正负数分开放再相减即可.赛后从大佬们那得知也可以直接加的,最后取个abs.膜拜大佬!B.BANBAN构造.显然每次交换最多可以破坏前面一个BAN,破坏后面......