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
至少为m
的k
倍,我们每次都减去的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;
}
标签:10,道题,cout,int,cin,long,受制,using,include
From: https://www.cnblogs.com/wxzcch/p/17669361.html