INPUT
Output
Examples
题意:
有个长度我n的字符串,然后把它分成k分,要使每份都good且为正数(good的要求为该数中0和1的个数不同),求输出最小的结果(答案不唯一输出一个即可)
难度★
题解:果然是cf典型的A题,只要能想明白,难度并不***r> 第一步:先判断整体1和0的个数,如果不同直接输出1和它本身
第二步:如果不同,先输出二(因为最小的结果就是拆成两个字符串,让两个都good),然后将第一个数和后面所有数拆开输出,这样后面的数绝对满足good(因为它原本1和0相等,现在拆走一个就肯定不相等),这样就OK了。
这个题简单就在于答案很多,满足一个即可,而最简单的就是把第一个数和后面拆开。
#include<bits/stdc++.h>//万能头文件让我快乐
using namespace std;
int main()
{
int ans1,ans2;
int n;
string m;
while(~scanf("%d"),&n)
{
cin >> m;
ans1= 0,ans2 = 0;
for(int i = 0;i < n;i++)
{
if(m[i] == '1') ans1++;
else ans2++;
}
if(ans2 != ans1)
cout <<1<<endl<<m<< endl;
else
{
printf("2\n");
printf("%d",m[0]);
for(int i = 1;i < n;i++)cout << m[i];
cout << endl;
}
}
return 0;
}
每天水A题,天天没烦恼。。。
(下回做点难的,不能再混了。。)