《看了受制了》第二天,5道题,合计10道题

2023年8月27日 受制了系列第二天

今天的题,是周赛的中等难度题,比较ez。慢慢进步,争取在12月左右可以ak周赛!!

ACWING 5140循环串

题目理解

就是一个长度为n的串,这个串由若干段长度为k的字母组成。我们只需要循环n次,不停输出长度为k的字符串即可。

代码实现

#include<bits/stdc++.h>

using namespace std;

int n, l, r;

int main()
{
    cin >> n;

    for(int i = 1; i <= n; i++)
    {
        cin >> l >> r;

        for(int j = 1; j <= l;)
        {
            for(int k = 1; k <= r && j <= l; k++, j++)
                printf("%c", 96 + k);
        }
        cout << endl;

    }
    return 0;
}

ACWING5137 数对

题目理解

这题,基础训练,就是看1~n-1中有多少对和为n的组。就是(n - 1) / 2

代码实现

#include<iostream>
using namespace std;

int main()
{
    int T;
    cin >> T;

    while(T --)
    {
        long long n;
        cin >> n;

        cout << (n - 1) / 2 << endl;

    }

    return 0;
}

ACWING5141 操作轮数

题目理解

这个题大概意思就是,大的减去小的,然后保留差和小的。我们让n一直为大的值,m一直为小的值,我们可以考虑到存在大的减小的以后还是大的,所以我们直接减去能减去的最大次数,即n至少为mk倍,我们每次都减去的k倍的小值,这样是最快的,不会超复杂度。
并且这个题目存在,减到相等的时候即可。

代码实现

#include<iostream>
using namespace std;

int main()
{
    long long n, m;
    cin >> n >> m;
    long long k = min(n, m);
    n = max(n, m);
    m = k;
    long long cnt = 0;

    while(true)
    {
        if(n % m != 0)
        {
            long long t = n - m * (n / m);
            cnt += n / m;
            n = max(t, m);
            m = min(t, m);
        }else{
            cnt += n / m;
            break;
        }
    }
    cout << cnt;
    return 0;
}

ACWING5138 冒险游戏

题目理解

模拟题目,直接把道具的数量存下来,道具有就减去一个道具,道具没有就收到伤害。

代码实现

#include<iostream>
using namespace std;

const int N = 30;

int a[N];
int n;



int main()
{
    cin >> n;
    int res = 0;
    char k;
    for(int i = 1; i <= 2 * n - 2; i++)
    {
        cin >> k;
        int t = (int)k;

        if(i % 2)
        {
            a[t - 96]++;
        }else{
            if(a[t - 64] > 0)
                a[t - 64]--;
            else
                res++;
        }

    }

    cout << res;

    return 0;
}

ACWING5134 简单判断

题目理解

基础语法的if

代码实现

#include<iostream>
using namespace std;

int main()
{
    int x, y, z;
    cin >> x >> y >> z;

    if(x > y + z)  cout << "+";
    else if(y > x + z) cout << "-";
    else if(x == y && z == 0) cout << "0";
    else cout << "?";

    return 0;
}
posted @ 2023-08-31 13:34  wxzcch  阅读(19)  评论(0)    收藏  举报