如果你想不耗费脑力做出这个题目,往下看:

本萌新看到这个题目,想到了乘法法则,题目中左右方向要判断两次,很耗脑力,和乘法中的正负号判断非常像。

抽象一点:这个人向内向外就是乘法中括号外的正负号,他的左右方向是括号内的正负号,所以我们以singer为标准,每个人的 0 (朝内)为 1 ,每个人的 1 (朝外)为 -1 。

而他们的左右方向,因为题目图中是逆时针走向,所以和他们的朝内朝外是相反的,故判断每个人左右方向时, 0 为 -1 , 1 为 1 。

最后将两个判断方向的数乘起来(这事当然交给电脑了),就是最终方向。代码如下:

#include<iostream>
using namespace std;
int n,m,a,b,i,num[100001];
string name[100001];//准备工作
int main(){
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>num[i]>>name[i];//输入
if(num[i]==0)num[i]=1;
else num[i]=-1;//以singer朝向为准,0为1,1为-1;
}
i=1;//从第一个开始循环
while(m){
cin>>a>>b;
if(a==0)a=-1;//题目的图中为逆时针,故 1为1,0为-1;
i+=num[i]*a*b;//乘法法则,把方向判断扔给电脑去算;
if(i<1)i=n+i;//边界情况
if(i>n)i%=n;//把他们围成一个圈
m--;
}
cout<<name[i];//输出,圆满
return 0;
}

最新文章

  1. [翻译]AKKA笔记 - DEATHWATCH -7
  2. mac mysql5.7重置root密码
  3. jeesz源码下载
  4. async和await浅析
  5. 阻抗计算(用SI9000如何计算微带线)
  6. error CS0103: 当前上下文中不存在名称“ViewBag”
  7. 【Gym 100015A】Another Rock-Paper-Scissors Problem
  8. 使用jsTree动态加载节点
  9. datagrid combobox事件更新编辑状态下的datagrid行
  10. c++中basic_istream::getline()的返回值何时为真
  11. “AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”问题解决~
  12. hexo 部署至Git遇到的坑
  13. ⒃bootstrap组件 轮播图 基础案例
  14. linux 内存 大于 jvm xmx
  15. .Net 5分钟搞定网页实时监控
  16. http协议无状态中的 &quot;状态&quot; 到底指的是什么?!
  17. HTML 块级元素 行内元素
  18. Ubantu linux中使用PyCharm之---破解PyCharm,实现永久免费试用
  19. JVM(二)之GC(转)
  20. # 20175213 2018-2019-2 《Java程序设计》第2周学习总结

热门文章

  1. 微软职位内部推荐-Software Engineer II-Search
  2. 了不起的Node.js--之二
  3. 《Gogoing》Alpha版使用说明
  4. week8:个人博客作业
  5. week7:个人博客作业
  6. 【Leetcode】209. Minimum Size Subarray Sum
  7. [转帖]SSL/TLS/WTLS原理
  8. CentOS下 NFS的简单使用以及windows 关在linux的NFS存储方法
  9. IntelliJ IDEA中文乱码问题
  10. C#小技巧