专栏文章
题解:P1563 [NOIP2016 提高组] 玩具谜题
P1563题解参与者 3已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @miqk4hud
- 此快照首次捕获于
- 2025/12/04 06:06 3 个月前
- 此快照最后确认于
- 2025/12/04 06:06 3 个月前
solution
一道小模拟。
对于一个人 ,记 表示 的朝向,分类讨论( 和 特殊考虑)。
- 若 ,即朝内,向左找就减,向右找就加。
- 若 ,即朝外,向左找就加,向右找就减。
对于一组询问 和 ,减的情况就是当前位置朝内向左找或当前位置朝外向右找, 且 或 且 ,即 时减,那反过来不相等就加。
加减后再对 取模,要特判取模后位置为 的情况。
code
CPP#include <bits/stdc++.h>
using namespace std;
int n, m, a[100005], now=1;
string b[100005];
int main () {
cin >> n >> m;
for (int i=1; i<=n; ++i)
cin >> a[i] >> b[i];
for (int x, s; m--; )
cin >> x >> s,
now=(now+(a[now]==x?-s:s)+n)%n,
now=(!now?n:now);
cout << b[now];
return 0;
}
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...