• “蔚来杯“2022牛客暑期多校训练营6


    G.Icon Design

    题意;
    给出一个n,按要求输出图形。

    思路:
    模拟输出题。
    先用数组存储全部的字符,最后输出。
    设长b=13n+19,宽a=4n+5。
    (1)先大面积是.,因此先初始化全是。
    (2)边缘全是*,因此当x1||xa||y1||yb时,字符为*。
    (3)接下来考虑@。
    先考虑竖着的情况:
    1>整个为竖:
    当x>=n2&&x<=3n+4时,字母的第1、2、3、5的y全是@。
    每个字母的两边:
    n+3
    3n+5
    4
    n+7
    6n+9
    7
    n+11
    9n+13
    10
    n+15
    12n+17
    2>一半一半:
    当x>=n+2&&x<=2
    n+3&&y10n+15时为@;
    当x>=2
    n+3&&x<=3*n+4&&y
    12*n+17时为@。

    再考虑横着的情况:
    F的上中,L的下,5的上中下全是@。

    再考虑N:
    当x=n+2时,y=n+3;
    当x=n+3时,y=n+4;
    所以x>=n+2&&x<=3*n+4时,y+1为@。

    代码:

    #include 
    using namespace std;
    int main(){
    	int n,x,y;
    	scanf("%d",&n);
    	int a=4*n+5,b=13*n+19;
    	char g[a+1][b+1];
    	for(int i=1;i<=a;i++){
    		for(int j=1;j<=b;j++){
    			if(i==1||j==1||i==a||j==b) g[i][j]='*';
    			else g[i][j]='.';
    		}
    	}
       for(x=n+2;x<=3*n+4;x++){
       	    for(y=1;y<=b;y++){
       	    	 if(y==n+3||y==3*n+5||y==4*n+7||y==7*n+11) g[x][y]='@';
    			 if(x>=n+2&&x<=2*n+3&&y==10*n+15) g[x][y]='@';
    			 if(x>=2*n+3&&x<=3*n+4&&y==12*n+17) g[x][y]='@';	 
    		   }
       }
       for(y=4*n+7;y<=6*n+9;y++){
       	  g[n+2][y]='@';
       	  g[2*n+3][y]='@';
       }
       for(y=10*n+15;y<=12*n+17;y++){
       	    g[n+2][y]='@';
       	    g[2*n+3][y]='@';
       	    g[3*n+4][y]='@';
       	    
       }
       for(y=7*n+11;y<=9*n+13;y++){
       	    g[3*n+4][y]='@';
       }
        for(x=n+2;x<=3*n+4;x++){
            g[x][x+1]='@';	
        } 
        for(x=1;x<=a;x++){
        	for(y=1;y<=b;y++){
        		printf("%c",g[x][y]);
    		}
    		puts("");
    	}
       return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    J.Number Game

    题意:

    给出a,b,c,x;
    你每次可以将b变成a-b,c变成b-c,
    问是否能将c变成x。

    思路:
    找规律推式子即可。

    代码:

    #include 
    using namespace std;
    int main(){
    	int a,b,c,x,t;
    	scanf("%d",&t);
    	while(t--){
    		scanf("%d%d%d%d",&a,&b,&c,&x);
    		if((c==x)||(b-c==x)||((a!=2*b)&&((x-c)%(a-2*b)==0||(x+c-b)%(a-2*b)==0))) puts("Yes");
    		else puts("No");
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

  • 相关阅读:
    firewall-cmd
    Bypass Windows Defender Dump Lsass(手法拙劣)
    【Spring Cloud Alibaba】开源组件Sentinel
    150. 以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?
    Vue学习第33天——路由守卫(导航守卫)超详解讲解及使用场景、案例练习
    软件工程师,全面思考问题很重要
    SQL Delete 语句(删除表中的记录)
    c++ 11 线程支持库 thread
    Pytorch技法:继承Subset类完成自定义数据集拆分
    全选、全不选、反选的练习
  • 原文地址:https://blog.csdn.net/srh20/article/details/126223604