本文主要是介绍上海市计算机学会竞赛平台2023年9月月赛丙组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
一开始,你只有一个数字𝑠s,𝑠s 只可能为 00 或 11。接下来,你需要将这个数字扩张 𝑛n 轮,最后变成一个 2𝑛×2𝑛2n×2n 的矩阵,每轮的扩张规则如下:
- 原矩阵中的每个 00 将变成 00010001
- 原矩阵中的每个 11 将变成 11101110
输入格式
- 两个整数分别表示 𝑛n 与 𝑠s
输出格式
- 2𝑛×2𝑛2n×2n 的矩阵表示答案,中间不含空格
数据范围
- 𝑠=0s=0 或 11
- 0≤𝑛≤110≤n≤11
样例数据
输入:
2 0
输出:
0000
0101
0011
0110
详见代码:
#include <bits/stdc++.h>
using namespace std;
int n;
int s;
int a[15][5005][5005];
int main()
{cin>>n;cin>>s;a[0][1][1]=s;for (int i=1;i<=n;i++){int t=(1<<(i-1));for (int j=1;j<=t;j++){for (int k=1;k<=t;k++){if (a[i-1][j][k]==0){a[i][j*2][k*2]=1;}else{a[i][j*2][k*2-1]=1;a[i][j*2-1][k*2]=1;a[i][j*2-1][k*2-1]=1;}}}}for (int i=1;i<=(1<<n);i++){for (int j=1;j<=(1<<n);j++){cout<<a[n][i][j];}cout<<endl;}return 0;
}
这篇关于上海市计算机学会竞赛平台2023年9月月赛丙组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!