1 条题解
-
0
自动搬运
来自洛谷,原作者为

Kawaii_qiuw
你看那峭壁之上生一枝红花_搬运于
2025-08-24 21:23:49,当前版本为作者最后更新于2025-01-06 19:09:58,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题面很好理解,不再赘述。
解题思路
主要分为 个步骤。
Step one 储存游戏结果
int n, a, b, p[205],q[205], x, y; int k[5][5] = {{0, 0, 1, 1, 0}, {1, 0, 0, 1, 0}, {0, 1, 0, 0, 1}, {0, 0, 1, 0, 1}, {1, 1, 0, 0, 0}};Step two 输入
cin >> n >> a >> b; for (int i = 0; i < a; i++) cin >> p[i]; for (int i = 0; i < b; i++) cin >> q[i];Step three 加减
for (int i = 0; i < n; i++) { x += k[p[i % a]][q[i % b]]; y += k[q[i % b]][p[i % a]]; }Step four 输出
cout << x << ' ' << y;看到了吗,我们把题目拆解成四个部分,每个部分都很简单、很基础。这题本身就不是很难,但如果遇到难题,思路也是将它拆解成几个你会写的代码,所谓的“难题”也就不难了,这和做数学题一个道理。
代码
#include <iostream> using namespace std; int n, a, b, p[205],q[205], x, y; int k[5][5] = {{0, 0, 1, 1, 0}, {1, 0, 0, 1, 0}, {0, 1, 0, 0, 1}, {0, 0, 1, 0, 1}, {1, 1, 0, 0, 0}}; int main() { cin >> n >> a >> b; for (int i = 0; i < a; i++) cin >> p[i]; for (int i = 0; i < b; i++) cin >> q[i]; for (int i = 0; i < n; i++) { x += k[p[i % a]][q[i % b]]; y += k[q[i % b]][p[i % a]]; } cout << x << ' ' << y; return 0; }完结撒花。
- 1
信息
- ID
- 326
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者