洛谷1563 玩具谜题
2017-08-21 16:01
260 查看
来源
NOIP 2016 提高组第一题(水题)前言
我去年考NOIP的时候我们学校有个人作死,然后没有AC 23333题目描述
小南有一套可爱的玩具小人, 它们各有不同的职业。有一天, 这些玩具小人把小南的眼镜藏了起来。 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图:
![](https://cdn.luogu.org/upload/pic/3438.png)
这时singer告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里。 ”
小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是相反的: 面朝圈内的玩具小人, 它的左边是顺时针方向, 右边是逆时针方向; 而面向圈外的玩具小人, 它的左边是逆时针方向, 右边是顺时针方向。
小南一边艰难地辨认着玩具小人, 一边数着:
singer朝内, 左数第3个是archer。
archer朝外,右数第1个是thinker。
thinker朝外, 左数第2个是writer。
所以眼镜藏在writer这里!
虽然成功找回了眼镜, 但小南并没有放心。 如果下次有更多的玩具小人藏他的眼镜, 或是谜題的长度更长, 他可能就无法找到眼镜了 。 所以小南希望你写程序帮他解决类似的谜題。 这样的谜題具体可以描述为:
有 n个玩具小人围成一圈, 已知它们的职业和朝向。现在第1个玩具小人告诉小南一个包含 m条指令的谜題, 其中第 z条指令形如“左数/右数第 s,个玩具小人”。 你需要输出依次数完这些指令后,到达的玩具小人的职业。
算法
虽说是水题,但是每次往左或往右走时循环每次+/- 1判出界还是会超时 。。。所以我们要每次 +/- 后取模。。。
其它的……乱搞即可。。。。。
代码
#include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <string> #include <cstdio> #include <cmath> using namespace std; const int Left=0; const int Right=1; const int Nei=0; const int Wai=1; //定义一堆常量 int Fx[100010]; //方向 string Name[100010]; //名字 int main() { int n,m; scanf("%d%d",&n,&m); //输入 for (int i=1;i<=n;i++) { scanf("%d",&Fx[i]); cin>>Name[i]; } int a,s; int Now=1; //当前位置 for (int i=1;i<=m;i++) { scanf("%d %d",&a,&s); //输入然后处理 if (a==Left) //各种情况,自己理解 { if (Fx[Now]==Nei) { Now-=s; if (Now<1) Now=n+Now; continue; } else { Now+=s; if (Now>n) Now=Now-n; continue; } } else { if (Fx[Now]==Nei) { Now+=s; if (Now>n) Now=Now-n; continue; } else { Now-=s; if (Now<1) Now=n+Now; continue; } } } cout<<Name[Now]<<endl; //输出名字 return 0; }
后记
这是我去年考试时的程序(说明我真的很蒻 23333)其实还可以加上优化使得代码变短:比如利用1和-1快速判断方向,会使代码简短很多
附图一张:
相关文章推荐
- 【NOIP2016】洛谷1563 玩具谜题
- 洛谷1563(NOIP2016)[玩具谜题]--模拟
- 洛谷 P1563 玩具谜题
- 记录个人在洛谷试练场做题历程:模拟,玩具谜题
- 洛谷 P1563 [NOIP2016 D1T1] 玩具谜题
- luogu1563 玩具谜题(NOIP2016提高组第1题)
- luogu1563 玩具谜题(NOIP2016提高组第1题)
- 洛谷 P1563 玩具谜题
- 【模拟】玩具谜题 luogu-1563
- LUOGU 洛谷 P1563 玩具谜题
- 洛谷 P1563 玩具谜题
- 玩具谜题(NOIP2016提高组day1第1题)
- 【NOIP2016提高组复赛】玩具谜题
- [NOIP2016提高组]玩具谜题
- 玩具谜题
- UOJ260 【NOIP2016】玩具谜题
- 洛谷 P3195 [HNOI2008]玩具装箱TOY(斜率优化入门)
- NOIP2016 T1 玩具谜题
- 【NOIP】玩具谜题
- 玩具谜题 NOIP2016 提高组 Day1 T1