Namomo Spring Camp 2022 Div2 Week1 每日一题

Posted 嗯我想想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Namomo Spring Camp 2022 Div2 Week1 每日一题相关的知识,希望对你有一定的参考价值。

2.26 特殊的正方形
2.27 走楼梯2

2.26 特殊的正方形


做的时候没有多想,就是按照题目意思去模拟了一下。

我的AC代码:

#include <bits/stdc++.h>

using namespace std;

int n;
char c[110][110];

int main() 
    scanf("%d", &n);
    int r = 0, co = 0;
    while (1) 
        if (r & 1) 
            for (int i = co; i < n - co; i++)
                c[co][i] = '.', c[n - co - 1][i] = '.';
            for(int i = r; i < n - r; i++)
                c[i][r] = '.', c[i][n - r - 1] = '.';
         else 
            for (int i = co; i < n - co; i++)
                c[co][i] = '+', c[n - co - 1][i] = '+';
            for(int i = r; i < n - r; i++)
                c[i][r] = '+', c[i][n - r - 1] = '+';
        

        r++;
        co++;
        if(r == n / 2 + 1) 
            break;
        
    

    for(int i = 0; i < n; i++) 
        for(int j = 0; j < n; j++) 
            printf("%c",c[i][j]);
        
        puts("");
    

    return 0;

wls题解思路:
分析题意其实就是每个点,到四个边距离最小值的奇偶
实现思路代码:

#include <bits/stdc++.h>

using namespace std;

int n;
char cc[110][110];

int main() 

    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++) 
            int a = i, b = n - i + 1, c = j, d = n - j + 1;
            int p = min(a, min(b, min(c, d)));
            if(p & 1)
                cc[i][j] = '+';
            else
                cc[i][j] = '.';
        

    for(int i = 1; i <= n; i++) 
        for(int j = 1; j <= n; j++) 
            printf("%c",cc[i][j]);
        
        puts("");
    

    return 0;

2.27 走楼梯2


呜呜呜,看了群友聊天和wls讲解思路才勉强AC,我是fw

二维dp,分析一下
f[i][j] 分几种情况进行处理,j = 0,1,2
i表示第几级台阶,j表示已经连续走过2级台阶的次数
记得要初始化

AC代码:

#include <bits/stdc++.h>

using namespace std;

int n;
long long f[60][5];

int main() 
    scanf("%d", &n);
    f[0][0] = 1;
    f[1][0] = 1;
    for(int i = 2; i <= n; i++) 
        f[i][0] = f[i - 1][0] + f[i - 1][1] + f[i - 1][2];
        f[i][1] = f[i - 2][0];
        if(i >= 4)
            f[i][2] = f[i - 4][0];
    
    long long ans = f[n][0] + f[n][1] + f[n][2];
    cout << ans << endl;
    return 0;

以上是关于Namomo Spring Camp 2022 Div2 Week1 每日一题的主要内容,如果未能解决你的问题,请参考以下文章

Namomo Spring Camp 2022 Div1 XOR Inverse Codeforces Round #673 (Div. 1) C. XOR Inverse 按位贪心模拟/字典树分治

Namomo Spring Camp 2022 Div1 XOR Inverse Codeforces Round #673 (Div. 1) C. XOR Inverse 按位贪心模拟/字典树分治

Namomo Spring Camp 2022 Div1 XOR Inverse Codeforces Round #673 (Div. 1) C. XOR Inverse 按位贪心模拟/字典树分治

Namomo Namomo Cockfight Round 3

让家长解脱的spring camp 终于来了

Aiiage Camp Day2 D domino