均分01
January 22, 2014
真是无语,刚才写了一遍,添加博客标签的时候,浏览器自动刷新了一下,
然后tm写的东西就没有了!!还得重写。。
开始没懂,学弟给讲的==
感觉很厉害的样子。
可以切分一次。
不管什么串,一定可以切分两次完成。
证明:
把这个串的首尾相连,设连接点是A,串的中点是B,设直线AB是L,L的左右的0的个数不相等,不妨设左边大于右边。顺时针旋转直线L,每旋转一次左右两边0的个数只可能发生两种变化:不变,+1,-1 。
等旋转一周的时候,直线回到原来的位置,此时左边小于右边。由于0的个数的变化是连续的,所以一定有一个时刻,左边等于右边。
证毕。感觉很厉害的样子。
#include <stdio.h>
#include <string.h>
int howmany(char *s)
{
int i, len = strlen(s) / 2;
int t = 0;
for (i = 0; i < len; ++i)
{
if (s[i] == '0')
{
t++;
}
if (s[i+len] == '0')
{
t--;
}
}
if (!t)
return 1;
else
return 2;
}
int main(void)
{
printf("%d\n", howmany("00001111"));
return 0;
}
囧