【题解】acwing第118场周赛
5140. 循环串
给定两个整数 ,请你用前 个小写字母为循环节,构成一个无限长的循环字符串,然后输出该循环字符串的前 个字符。
例如,当 时,循环字符串为 ababab...
,当 时,循环字符串为 abcabcabc...
。
输入格式
第一行包含整数 ,表示共有 组测试数据。
每组数据占一行,包含两个整数 。
输出格式
每组数据输出一行结果,一个长度为 的字符串,表示循环字符串的前 个字符。
数据范围
前 个测试点满足 ,,。
所有测试点满足 ,,。
输入样例:
4
7 3
6 1
6 4
5 2
输出样例:
aaaaaa
abcdab
ababa
算法(模拟)
没什么好说的,按题意模拟即可
C++ 代码
1 |
|
5141. 操作轮数
给定两个正整数 ()。
对两数执行以下操作,在每一轮操作中:
- 令较大数变为较大数减较小数之差,令较小数保持不变。(注意,如果两数相等,则任意指定其中一数为较大数即可。)
当两数之中至少有一个数变为 时,操作停止。
请你计算,一共需要进行多少轮操作。
输入格式
共一行,包含两个整数 。
输出格式
一个整数,表示所需进行的操作轮数。
数据范围
所有测试点满足 。
输入样例1:
2 1
输出样例1:
2
输入样例2:
10 7
输出样例2:
6
输入样例3:
1000000000000 1
输出样例3:
1000000000000
算法1(暴力)
最开始一眼丁真写了暴力代码,吃了一发罚时,暴力的思路是模拟题意,这里给出代码
1 |
|
算法2(取模)
如果数据给了个和,就会tle,所以我们考虑优化,可以用取模的方式
1 |
|
5142. 移动棋子
在一个无限大的二维平面中有一颗棋子。
初始时,棋子位于点 。
现在,我们希望将棋子移动至点 。
每次移动时,你需要首先选择一个与棋子距离恰好为 的点,然后令棋子以该点为旋转中心旋转任意角度,使得棋子到达适当的位置。
请计算,为了使棋子到达最终目的地,至少需要进行多少次移动。
输入格式
共一行,包含 个整数 。
输出格式
一个整数,表示所需的最少移动次数。
数据范围
前 个测试点满足 ,。
所有测试点满足 ,。
输入样例1:
2 0 0 0 4
输出样例1:
1
输入样例2:
1 1 1 4 4
输出样例2:
3
输入样例3:
4 5 6 5 6
输出样例3:
0
算法(人类智慧)
题目大意是把一个点挪到另一个点,挪动方式的是绕一个点以半径为旋转。
我们知道,两点之间线段最短,所以给出代码(我不会证)
1 |
|
【题解】acwing第118场周赛
http://luhaoren.xyz/2023/08/26/【题解】acwing第118场周赛/