原题传送
INPUT
Output
Examples
题意:
有个长度我n的字符串,然后把它分成k分,要使每份都good且为正数(good的要求为该数中0和1的个数不同),求输出最小的结果(答案不唯一输出一个即可)
难度★
题解:果然是cf典型的A题,只要能想明白,难度并不大
第一步:先判断整体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题,天天没烦恼。。。
(下回做点难的,不能再混了。。)