FBI树
3 10001011
IBFBBBFIBFIIIFF
#include<cstdio> #include<cstring> char s[1100]; int FBI(int start,int len){//两个变量,start起始位置,len长度 if(len==1){ if(s[start]=='0'){ printf("B"); return 0; } else{ printf("I"); return 1; } } else{//返回0说明全为0,返回1说明全为1,否则返回2 int x=FBI(start,len/2); int y=FBI(start+len/2,len/2); if(x==y&&x==0){ printf("B"); return 0; } else if(x==y&&x==1){ printf("I"); return 1; } else{ printf("F"); return 2; } } } int main(){ int n;//其实这样做,n是一个无用的变量 scanf("%d%s",&n,s); int l=strlen(s); FBI(0,l); printf("\n"); return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
SDNU 1168.FBI树【NOIP 2004 普及组】【不建树】【7月28】
原文:http://blog.csdn.net/a995549572/article/details/47102033