首页 > 试题广场 >

01串题

[编程题]01串题
  • 热度指数:3613 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
    你有a0,和b1,你需要用这些01字符构造出一个长度为01字符串,随后小红会进行无数次操作,每次操作会选择一对相邻且相同的字符,并将他们删除,然后将剩余的字符串拼接起来。直到无法进行该操作为止。
你需要保证你构造出的字符串在经过小红的的无数次操作之后,剩余字符串长度为x

输入描述:
第一行输入三个非负整数a,b,x,分别代表0,1的数目和最后的字符串长度。
,且ab不同时为0。
保证x一定是偶数。


输出描述:
输出你构造出来的字符串,如果无法构造出来,那么输出-1。
示例1

输入

3 1 2

输出

0001

说明

我们可以将23位置删除,最后生成字符串01长度为2
示例2

输入

2 1 2

输出

-1

说明

我们无法生成字符串 
头像 _已被标记为牛弊_Refrain_Y
发表于 2025-12-18 00:17:29
发现不能被删除的一定是01010101这样的01交替出现的部分我们计算构造完长度为x的串之后剩余的0和1的个数,记为la和lb,如果其中之一是奇数或者其中之一小于0(也就是无法构造出长度为x的串),则说明无法构造,输出-1如果能构造,按照任意顺序输出三个部分即可 void Refra1n() { 展开全文
头像 realrole
发表于 2025-12-18 00:26:02
#include <iostream> using namespace std; int main() { int a,b,x; cin>>a>>b>>x; int la=a-x/2,lb=b-x/2; if(la&l 展开全文
头像 周康禧
发表于 2025-12-18 14:43:57
分类讨论一下 最后要求的长度为x的01序列一定是010101.. 或者10101010.. 这样01相间,而且0和1至少都要有x/2个,那么多余的部分都应该被操作删除了,对于每一次删除是删除两个一样的字符所以把多余的0和1都放在一起就行了,还要保证多余的0和1都是偶数就行了 void solve() 展开全文
头像 IA3000
发表于 2025-12-18 00:46:15
#include <iostream> using namespace std; int main() { int a,b,x; cin>>a>>b>>x; x/=2; a-=x; b-=x; if(a 展开全文
头像 quchen666
发表于 2025-12-18 13:01:25
#include <bits/stdc++.h> using namespace std; int a,b,x; int main() { cin>>a>>b>>x; if(a<x/2||b<x/2||a+b<x)c 展开全文
头像 此在Dasein
发表于 2025-12-18 00:43:18
1. 算法核心思路 这个问题本质上是一个栈消除(Stack Elimination)或括号匹配类的问题。 消除规则分析: 每次删除相邻且相同的字符("00" 或 "11"),这意味着字符是成对消失的。 无论怎么删除,剩余字符串中字符的相对顺序(0和1的交 展开全文
头像 ccl_aurora
发表于 2025-12-18 07:37:27
#include <iostream> #include<iomanip> #include<vector> using namespace std; int main() { int a,b,x; cin>>a>>b&g 展开全文
头像 smartiphone
发表于 2025-12-18 11:12:40
#include<bits/stdc++.h> #define endl '\n' using namespace std; void solve() { int a,b,x; cin >> a >> b >> x; if(x 展开全文
头像 YunBaichuan
发表于 2025-12-18 13:04:30
思路:我们知道要构成长为x的"0101..."串,首先得计算对应的"0"和"1"够不够,那就可以分别用a, b减去x // 2得到剩余的"0"和"1",记作c, d。接下来先判断c, d是否有负数,如 展开全文
头像 牛客675909337号
发表于 2025-12-18 14:23:58
a, b, c = map(int, input().split()) a -= c // 2 b -= c // 2 if ((a < 0) | (b < 0)): print(-1) exit(0) if (a % 2) | (b % 2) : prin 展开全文