开始 2024-08-20 08:00:00

8.19-8.24集训第二天

结束 2024-08-25 00:00:00
Contest is over.
当前 2024-12-22 19:31:21

@刘沛辰

能给F、G、I、K、M的题解码? 球球了(●'◡'●)


LZOI202510859  •  4个月前


LIUYC  •  4个月前

你竟然在这


yxy20121202  •  4个月前
#include<bits/stdc++.h>
using namespace std;
 int main() {
while(1){
	cout<<"盗我代码是吧"<<" " ;
}

yxy20121202  •  4个月前

@周子隽 我在这里发言没事吧?


yxy20121202  •  4个月前

快了


LIUYC  •  4个月前

K

#include<iostream>
using namespace std;
const int N=1e3;
int B[N][N];
void dfs(int n){
    if(n==1) {//第n级盒子只有一个'X';
        B[0][0]=1;
        return;
    }
    dfs(n-1);
    int len_n_1=1;//表示n-1级盒子边长;
    for(int i=1;i<=n-2;++i)
        len_n_1*=3;
    int dx[4]={0,1,2,2,},dy[5]={2,1,0,2};//表示行和列的变化,单位为len_n_1;
    for(int i=0;i<4;++i)
        for(int j=0;j<len_n_1;++j)
            for(int k=0;k<len_n_1;++k)
                B[dx[i]*len_n_1+j][dy[i]*len_n_1+k]=B[j][k];//将变化前的值复制给变化后的值;
    return;
}
int main()
{
    dfs(7);
    int n;
    while(cin>>n&&n!=-1){
        int len_n=1;//len_n表示n级盒子边长;
        for(int i=1;i<=n-1;++i) 
            len_n*=3;//边长=3^(n-1);
        for(int i=0;i<len_n;++i){//根据输入的数值大小,输出对应边长大小的数组;
            for(int j=0;j<len_n;++j)
                if(B[i][j]==1) cout<<'X';//某一位值为1表示该输出'X',否则输出空格;
                else cout<<' ';
            cout<<endl;
        }
        cout<<'-'<<endl;
    }
}

LIUYC  •  4个月前

比赛已结束。