Codeforces Round #572 (Div. 2)
A. Keanu Reeves 所有“字符串”均为0,1组成。定义好串:0和1字符数不相等 坏串:0和1字符数相等 给一个字符串 问:最小拆分分成几个字符串可以全部变成好串 解法:字符串有可能0,1的数量不相等,本来就是好串。直接输出1和原字符串。字符串0,1数量也可能相等,是坏串。我们只需单独把字符串第一个字符和剩余字符串分别输出。两个必定都是好串。此时拆分成了两个子字符串,故只有1和2两种情况。 #include <iostream> using namespace std; int n; char a[1010]; int temp; int main() { scanf("%d",&n); scanf("%s",a); for(int i=0;i<n;i++) { if(a[i]-'0'==1) temp++; if(a[i]-'0'==0) temp--; } if(temp!=0) { printf("1\n"); for(int i=0;i<n;i++) { printf("%d",a[i]-'0'); } } if(temp==0) { printf("2\n"); printf("%d ",a[0]-'0'); for(int i=1;i<n;i++) printf("%d",a[i]-'0'); } printf("\n"); } View Code B.