• “蔚来杯“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

  • 相关阅读:
    Python学习第三天(列表常用函数)
    2022 OceanBase 年度发布会:发布四大策略,迈入4.0时代
    02 Dart 基础 string ,int,list,map
    2023年破圈:盘点11个新零售商业模式,永远不再打商业价格战
    Kotlin第九弹:深入理解 Kotlin 泛型
    高校社团管理系统jsp和javabean开发
    shell脚本入门之【变量的定义】
    18 软专
    基于GMM的一维时序数据平滑算法
    金融信贷行业如何准确——大数据精准定位获客渠道
  • 原文地址:https://blog.csdn.net/srh20/article/details/126223604