完善程序题 普及篇 2、【NOIP1998】FBZ串问题

/* 
完善程序题 普及篇 2、【NOIP1998】FBZ串问题
https://www.cnblogs.com/myeln/articles/16580782.html

四、根据题意,补充完善以下程序:(17%)
1.FBZ串问题。已知一个由0,1字符组成的长度为2n的字符串。请按以下规则将已给出的字符串分解为FBZ串:
(1)若其中字符全为'1',则称其为'B'串;
(2)若其中字符全为'0',则称其为'Z'串;
(3)若不全为'0',同时也不全为'1',则称'F'串。若此串为F串,则应将此串分解为2个长为2n-1的子串。
对分解后的子串,仍按以上规则继续分解,直到全部为B串或为Z串为止。
例如n=3时,给出0-1串为:'10111001'

最后输出:FFFBZBFFBZFZB
问题:给出01串,分解成FBZ串。
程序如下:
*/ 
01 #include<iostream>
02 #include<cstdio>
03 using namespace std;
04 const int n=8;
05 int i,j,stl1,stl2,st2,s,t;
06 char str1[n*2+1][n+1],str2[44];
07 int main()
08 {
09     for(i=1;i<n*2;++i)
10         for(j=1;j<=n;++j)    str1[i][j]=' ';
11     stl1=1;stl2=1;st2=0;
12     for(i=1;i<=n;++i) str1[1][i]=getchar();
13     while(--1--)
14     {
15         s=0;t=0;
16         for(i=1;i<=n;++i)
17         {
18             if(str1[stl2][i]=='1')    s++;
19             if(str1[stl2][i]=='0')    t++;
20         }
21         if(--2--)
22         {
23             st2++;str2[st2]='B';
24         }
25         else if(s==0)
26         {
27             st2++;str2[st2]='Z';
28         }
29         else
30         {
31             st2++;str2[st2]='F';j=(s+t)/2;
32             for(s=n*2-2;s>=--3--;--s)
33                 for(t=1;t<=n;++t)
34                     str1[s+2][t]=str1[s][t];
35             stl1+=2;
36             for(int i=1;i<=j;++i)
37             {
38                 str1[stl2+1][i]=str1[stl2][i];
39                 str1[stl2+2][i]=--4--;
40             }
41             for(int i=--5--;++i)
42             {
43                 str1[stl2+1][i]=' ';str1[stl2+2][i]=' ';
44             }
45         }
46         stl2++;
47     }
48     for(int i=1;i<=st2;++i)    printf("%c",str2[i]);
49     return 0;
50 }

 完善程序题 普及篇 2、【NOIP1998】FBZ串问题

https://www.cnblogs.com/myeln/articles/16580782.html


 CSP初赛课1-计算机发展史

CSP初赛课1-计算机发展史_哔哩哔哩_bilibili

初赛课2-信息存储与网络

初赛课2-信息存储与网络_哔哩哔哩_bilibili

CSP初赛课3-数学和数据结构

CSP初赛课3-数学和数据结构_哔哩哔哩_bilibili

CSP初赛课4-数据结构+排序

CSP初赛课4-数据结构+排序_哔哩哔哩_bilibili

CSP初赛课5-语言基础与阅读程序

CSP初赛课5-语言基础与阅读程序_哔哩哔哩_bilibili

CSP初赛课6-阅读程序和完善程序

CSP初赛课6-阅读程序和完善程序_哔哩哔哩_bilibili

CSP初赛课7-2019-2020真题讲解

CSP初赛课7-2019-2020真题讲解_哔哩哔哩_bilibili

CSP初赛课8-2020真题讲解

CSP初赛课8-2020真题讲解_哔哩哔哩_bilibili

CSP初赛课9-模拟试题1讲解

CSP初赛课9-模拟试题1讲解_哔哩哔哩_bilibili

CSP初赛课10-模拟试题2讲解

CSP初赛课10-模拟试题2讲解_哔哩哔哩_bilibili

跟着拓拓一起学编程的个人空间-跟着拓拓一起学编程个人主页-哔哩哔哩视频

CSP初赛课11-模拟试题3讲解

CSP初赛课11-模拟试题3讲解_哔哩哔哩_bilibili

CSP初赛课12-模拟试题4讲解

CSP初赛课12-模拟试题4讲解_哔哩哔哩_bilibili

CSP初赛课13-模拟试题5讲解

CSP初赛课13-模拟试题5讲解_哔哩哔哩_bilibili

CSP初赛课14-模拟试题6讲解

CSP初赛课14-模拟试题6讲解_哔哩哔哩_bilibili

CSP初赛课15-总复习

CSP初赛课15-总复习_哔哩哔哩_bilibili


 


 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值