加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

【数据结构】[NOIP2004]FBI树

发布时间:2020-12-15 06:08:09 所属栏目:安全 来源:网络整理
导读:题目 就是感觉很像线段树那样建树 然后统计01就行了 代码如下 #includeiostream #includecstdio #includecctype using namespace std ; #define in = read() typedef long long ll; typedef unsigned int ui; const ll size = 1000 + 100 ; int n; int num0,

题目

就是感觉很像线段树那样建树 然后统计01就行了

代码如下

#include<iostream> #include<cstdio> #include<cctype> using namespace std; #define in = read() typedef long long ll; typedef unsigned int ui; const ll size = 1000 + 100; int n; int num0,num1,mid,ans; char s[size]; inline ll read(){ ll num = 0,f = 1; char ch = getchar(); while(!isdigit(ch)){ if(ch == '-') f = -1; ch = getchar(); } while(isdigit(ch)){ num = num*10 + ch - '0'; ch = getchar(); } return num*f; } int pow(int a,int b){ ans = 1; while(b){ if(b & 1) ans *= a; a *= a; b >>= 1; } return ans; } void build(int l,int r){ mid = ((l + r)>>1); if(l != r){ build(l,mid); build(mid + 1,r); } for(register int i=l;i<=r;i++){ if(s[i] == '0') num0 ++; if(s[i] == '1') num1 ++; } if(num0 && num1) printf("F"); else if(!num1) printf("B"); else if(!num0) printf("I"); num0 = 0; num1 = 0; } int main(){ // freopen("fbi.in","r",stdin); // freopen("fbi.out","w",stdout); n in; scanf("%s",s + 1); build(1,pow(2,n)); return 0; } //COYG 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读