codeforces 704(div.2)D. Genius's Gambit

\(题目链接\)http://codeforces.com/contest/1492/problem/D

题意:balabala
题解:思维题,通过构造能够得到最多a+b-2个1,
我们通过先想最简单的做法不难得到当b=2时显而易见这种方式能够得到最多的1:
110000000
100000001
并且我们可以移动第二位的数对(1,0)来得到最多a+b-2个1,是以这种方式移动的:
100010000
100000001(相减得到4个1)
我们再考虑b>=3的情况来看:
例如:
111100000
101100001
显而易见,我们可以移动第二位的数对(1,0)来得到最多不超过a+b-2个1,如果还不明白,这是因为上面相减依然可以写成:
110000000
100000001
很熟悉吧,就变成了b=2时的简单情况,于是我们就会处理了!
(代码有点乱)
\(Coding:\)

/*************************************************************************
    > File Name: D.cpp
# Author: Badwoman
# mail: 1194446133@qq.com
    > Created Time: 2021年03月03日 星期三 19时38分22秒
 ************************************************************************/

#include<set>
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<map>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#define ll long long
#define ull unsigned long long
#define pb push_back
#define mp make_pair
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define bep(i,a,b) for(int i=a;i>=b;--i)
#define lowbit(x) (x&(-x))
using namespace std;
int a,b,k;
void solve(){
	scanf("%d%d%d",&a,&b,&k);
	int mx = a + b - 2 ;
	int n = a + b ;
	if(!a){
		if(k)printf("No");
		else {
			puts("Yes");
			rep(i,1,2){
				rep(j,1,n)printf("1");puts("");
			}
		}return ;
	}
	if(k>mx)puts("No");
	else {
		if(b == 1){
			if(k)puts("No");
			else {
				puts("Yes");
				rep(j,1,2){
				printf("1");
				rep(i,1,a)printf("0");
				puts("");
				}
			}
		}
		else if(b == 2){
			puts("Yes");
			printf("1");
			int now = 2;
			rep(i,2,n-k-1)printf("0");
			printf("1");
			rep(i,n-k,n-1)printf("0");
			puts("");
			printf("1");
			rep(i,2,n-1)printf("0");
			puts("1");
		}
		else {
			puts("Yes");
			rep(i,1,n){
				if(i<=b-1||i==n-k||(n-k<=b-1&&i==b))printf("1");
				else printf("0");
			}
			puts("");
			int cnt = 0;
			rep(i,1,n-1){
				if(i==n-k)printf("0");
				else if(cnt<b-1)printf("1"),cnt++;
				else printf("0");
			}
			puts("1");
		}
	}
}
signed main(){
	solve();
	return 0;
}

posted @ 2021-03-03 20:27  xiaodangao  阅读(67)  评论(0)    收藏  举报