蓝桥杯题目

刚才看了一下蓝桥杯的题目,做了两道发现全是暴力解法就能过的,不知道到时候比赛出什么题目啊~
第一题 中石油训练平台
1567: 01字串

题目描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。

输入

输出

输出32行,按从小到大的顺序每行一个长度为5的01串。

样例输出
00000
00001
00010
00011
<以下部分省略>

来源/分类

蓝桥杯

这题其实用五个for循环就行了,每一次多更新一次,多一个1或者换一个1 代码如下:

#include
using namespace std;
int main() {
  for(int i=0;i<2;i++)
    for(int j=0;j<2;j++)
      for(int k=0;k<2;k++)
        for(int l=0;l<2;l++)
          for(int o=0;o<2;o++)
            cout<<i<<j<<k<<l<<o<<endl;
}

还挺好看的 (滑稽

1572: FJ的字符串

[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?

输入

仅有一个数:N ≤ 26。

输出

请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。

样例输入
复制样例数据 3

样例输出
ABACABA

这题利用了dg的思想,写一个void dfs函数,边递归边输出,这题本来不会做,看了网上题解才看明白,然后自己手动模拟了半天才模拟出来,不知道啥时候我能熟练到看到这种题直接脑子里出结果的程度啊= =!
代码:

#include
using namespace std;
void dfs(int n) {
  if(n==1) {
    cout<<"A";
    return ;
  }
  else {
    dfs(n-1);
    cout<<(char)('A'+n-1);
    dfs(n-1);
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin>>n;
  dfs(n);
  return 0;
}

别忘记关同步哦 忘了关可是会吃tttttle的!
等再遇到蓝桥杯的题就会放到这篇博客里面的~

你可能感兴趣的:(题解)