洛谷P1563

看完了noip2017觉得noip2016是真的简单……2017第一题就卡住2016第一题10分钟AC

思路:

m<=100000很明显暴力模拟就可以

唯一有一点点难度的地方就是小人的朝向对位置的影响

写个函数用if else直接判断也可以但这里提供一个更简单的方法:将指令存储在数组中

题目给的信息是0表示朝向圈内,1表示朝向圈外,且0表示向左数,1表示向右数

直接用题目输入的逆时针环,我们可以推出,朝向和数的方向均为0或1时为-,朝向和数的方向不同时为+(这个很容易理解吧)

废话不多说先贴个代码:

 #include<iostream>
#include<string>
using namespace std;
int ord[][]={-,,,-};//存放指令
string job[];//职业存储
int face[];//小人朝向
int main()
{
int n,m;
cin>>n>>m;
for(int i=;i<n;i++)
cin>>face[i]>>job[i];
int place=;//位置标记
while(m--)
{
int a,s;
cin>>a>>s;
place+=ord[a][face[place]]*s;//操作
place%=n;
if(place<)
place+=n;
}
cout<<job[place]<<endl;
return ;
}

两点注意事项:

1、下标要从0开始(方便使用取模运算)

2、每次操作后要取模,但注意place<0的时候C++自带模运算的结果是<0的,此时只要+n就可以(博主亲自测试过,C++对于负数的模运算定义为其绝对值的模运算,结果的符号取决于被除数的符号(因为模是由整除定义来的:a%b=a-a/b(整除)))

最新文章

  1. PHP中比较两个时间的大小与日期的差值
  2. React和Backbone优缺点
  3. UVAlive3662 Another Minimum Spanning Tree 莫队算法
  4. HTTP 错误 401.3 - Unauthorized由于 Web 服务器上此资源的访问控制列表(ACL)解决办法
  5. SQL查询语句联系
  6. c++ thread
  7. 二维码生成api
  8. prop解决一个checkbox选中后再次选中失效的问题
  9. System.Transactions 事务超时属性
  10. PHP:第一章——PHP中的变量002
  11. 重写外部图片URL,变成自己的URL
  12. C++ 64位操作系统调用 RegOpenKey() 读取注册表,返回 2, ERROR_FILE_NOT_FOUND
  13. python,monkey-patch【猴子补丁】
  14. 立个FLAG
  15. Multiply Strings leetcode java
  16. ECharts 3 -- gauge表盘的配置项
  17. [VS2008] 安装 AnkhSVN 后,选项中选择它,Pending Changes 窗口一闪而过,源代码管理工具自动跳回 【None】
  18. erlang-百度云推送Android服务端功能实现-erlang
  19. bootstrap之辅助类
  20. [转] Elasticsearch 6.1官方入门教程

热门文章

  1. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_5 mybatis中使用poolead配置连接的原理分析
  2. RobotFramework 用例出错后继续操作
  3. mysql explain中的列
  4. 3.k8s资源控制器rs Deployment Job
  5. 【MM系列】SAP 簇表 A017 物料信息记录 (指定工厂) 包含的透明表
  6. 【MM系列】SAP PO增强BADI
  7. 操作系统 - Linux操作系统 - Centos - Centos7 - 安装|命令|使用汇总
  8. JavaDoc注释
  9. Java Springboot 根据图片链接生成图片下载链接 及 多个图片打包zip下载链接
  10. [集合]HashMap和Hashtable区别