1 条题解

  • 0
    @ 2025-8-24 23:13:18

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Flambler
    大鹏一日同风起,扶摇直上一毫米,即从巴峡穿巫峡,回家睡觉拉裤裆 || zh:zh,菜就多练,at都上不了400,cf都上不了1200

    搬运于2025-08-24 23:13:18,当前版本为作者最后更新于2025-04-13 16:25:56,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    P12164 题解

    Step 0 前言 Preface

    博客食用更佳 打算把蓝桥杯的题(P12162~P12168)全写一篇题解,这是 T3 的题解。

    Step 1 思路 Idea

    我们首先分析一下样例并且表上下标(从 00 开始,好找规律):

      0 1 2 3 4 5 6 7 8 9
    0 2 0 2 5 2 0 2 5 2 0
    1 0 2 5 2 0 2 5 2 0 2 
    2 2 5 2 0 2 5 2 0 2 5
    3 5 2 0 2 5 2 0 2 5 2
    4 2 0 2 5 2 0 2 5 2 0
    

    我们可以尝试把两个下标加起来,看和字符有什么关系:

    0+0=0:2
    0+1=1:0
    0+2=2:2
    0+3=3:5
    0+4=4:2
    0+5=5:0
    0+6=6:2
    0+7=7:5
    0+8=8:2
    0+9=9:0
    ……
    4+6=10:2
    4+7=11:5
    4+8=12:2
    4+9=13:0
    

    我们发现下标 xx 加上下标 yymod4\bmod4 和字符有关联:

    1. (x+y)mod4=0(x+y)\bmod4=0 的情况下:字符为 22
    2. (x+y)mod4=1(x+y)\bmod4=1 的情况下:字符为 00
    3. (x+y)mod4=2(x+y)\bmod4=2 的情况下:字符为 22
    4. (x+y)mod4=3(x+y)\bmod4=3 的情况下:字符为 55

    Step 2 代码 Code

    根据这个规律,我们就能写出代码:

    #include<bits/stdc++.h>
    using namespace std;
    char ch[110][110], of[4]={'2', '0', '2', '5'};  // 映射
    int main() {
    	int n, m;
    	scanf("%d%d", &n, &m);
    	for(int i = 0;i<n;i++) {
    		for(int j = 0;j<m;j++) {
    			ch[i][j]=of[(i+j)%4];  // 规律
    		}
    	}
    	for(int i = 0;i<n;i++) {
    		puts(ch[i]);  // 直接输出一行,不用挨个字符输出
    	}
    	return 0;
    }
    

    100 pts record

    • 1

    信息

    ID
    12014
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者