记录个人在洛谷试练场做题历程:模拟,玩具谜题
2018-04-01 17:38
281 查看
https://www.luogu.org/problemnew/show/P1563
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node
{
char s[11];
int di;
}a[100010];
int main()
{
int n,m,d,l,ans=0;
scanf("%d%d",&n,&m);
for(int i=0;i<n;++i)
scanf("%d%s",&a[i].di,&a[i].s);
for(int i=1;i<=m;++i)
{
scanf("%d%d",&d,&l);
if(d==0)
{
if(a[ans].di==0)
ans=(ans-l+n)%n;
else
ans=(ans+l)%n;
}
else
{
if(a[ans].di==0)
ans=(ans+l)%n;
else
ans=(ans-l+n)%n;
}
}
printf("%s",a[ans].s);
}
做这题主要的收获是:因为取膜,所以在%n时数组下表有可能会变成0,所以在记录时,数组下表应该从0到n-1;
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node
{
char s[11];
int di;
}a[100010];
int main()
{
int n,m,d,l,ans=0;
scanf("%d%d",&n,&m);
for(int i=0;i<n;++i)
scanf("%d%s",&a[i].di,&a[i].s);
for(int i=1;i<=m;++i)
{
scanf("%d%d",&d,&l);
if(d==0)
{
if(a[ans].di==0)
ans=(ans-l+n)%n;
else
ans=(ans+l)%n;
}
else
{
if(a[ans].di==0)
ans=(ans+l)%n;
else
ans=(ans-l+n)%n;
}
}
printf("%s",a[ans].s);
}
做这题主要的收获是:因为取膜,所以在%n时数组下表有可能会变成0,所以在记录时,数组下表应该从0到n-1;
相关文章推荐
- 记录个人在洛谷试练场做题历程:二分答案:膨胀的木棍
- 洛谷1563(NOIP2016)[玩具谜题]--模拟
- 【NOIP2016】洛谷1563 玩具谜题
- 【模拟】[NOIP2016&2015]玩具谜题&神奇的幻方
- 洛谷Oj-P1563 玩具谜题-模拟
- 洛谷 P1563 玩具谜题
- UOJ 260(模拟)(玩具谜题)
- [模拟]玩具谜题
- 以后会在这里记录自己的做题历程
- 【OI做题记录】【BZOJ】【斜率优化DP】【HNOI2008】玩具装箱
- 【模拟】玩具谜题 luogu-1563
- [NOIP] [模拟] NOIP2016Day1 玩具谜题
- 模拟(玩具谜题NOIP 2016 提高组 Day 1 第一题vijos2003)
- 洛谷 P1563 玩具谜题
- 洛谷1563 玩具谜题
- 洛谷 P1563 [NOIP2016 D1T1] 玩具谜题
- 模拟——玩具谜题
- 第一篇个人博客,仅为记录学习的历程,点点滴滴。
- LUOGU 洛谷 P1563 玩具谜题
- 洛谷 P1563 玩具谜题