NOIP 普及组 2012 寻宝(思维???)
https://www.cnblogs.com/violet-acmer/p/9937201.html
题解:
一开始用暴力查找下一个要去的房间,超时了,emmmmm.......
然后,就稍微优化了一下,具体看代码
#include<bits/stdc++.h>
using namespace std;
const int MOD=;
const int maxn=1e4+; int N,M;
int pos;//当前位置
int id[];//存储每一层 pos 房间之后的 key==1 的房间编号
struct Node
{
int key;//0 表示没有,1 表示有
int index;//指示牌上的数 字
Node(int a=,int b=):key(a),index(b){};
}Floor[maxn][]; int nextRoom(int nowF,int pos)
{
int x=;
int p=pos;
do
{
if(Floor[nowF][p].key == )
id[++x]=p;//按照逆时针顺序,将key == 1的房间编号加入到id[]中
p=(p+ == M ? :p+);
}while(p != pos); int mod=Floor[nowF][pos].index%x;//id[mod]即为所求的房间
return mod == ? id[x]:id[mod];//特别注意,当mod == 0时,所求房间为 id[x]
}
void Solve()
{
int nowF=;
int sum=;
while(nowF <= N)
{
sum=sum%MOD+Floor[nowF][pos].index;//根据题意求解密钥
pos=nextRoom(nowF,pos);//查找下一个要去的房间
nowF++;
}
printf("%d\n",sum%MOD);
}
int main()
{
scanf("%d%d",&N,&M);
for(int i=;i <= N;++i)
{
for(int j=;j < M;++j)
{
int a,b;
scanf("%d%d",&a,&b);
Floor[i][j]=Node(a,b);
}
}
scanf("%d",&pos);
Solve();
}
踩到一个坑:
当 mod == 0 时,说明满足要求的房间为id[x]而不是id[0]
NOIP 普及组 2012 寻宝(思维???)的更多相关文章
- caioj:1348: [NOIP普及组2012]质因数分解 C++
题目描述 已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数. 输入样例 21 输出样例 7 输入 输入只有一行,包含一个正整数n. 输出 输出只有一行,包含一个正整数p,即较大的那个质数 ...
- 2321. 【NOIP普及组T1】方程
2321. [NOIP普及组T1]方程 时间限制: 1000 ms 空间限制: 262144 KB 题目描述
- [NOIP普及组2011]装箱问题
目录 链接 博客链接 题目链接 题目内容 题目描述 格式 输入 输出 样例 输入 输出 前缀知识 题解 题目名称:装箱问题 来源:2011年NOIP普及组 链接 博客链接 CSDN 洛谷博客 题目链接 ...
- [NOIP普及组2001]最大公约数和最小公倍数问题
目录 链接 博客链接 题目链接 题目内容 题目描述 格式 输入 输出 数据 样例 输入 输出 说明 题目名称:最大公约数和最小公倍数问题 来源:2001年NOIP普及组 链接 博客链接 CSDN 洛谷 ...
- 2016.8.15上午纪中初中部NOIP普及组比赛
2016.8.15上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1333 这次比赛不怎么好,因为这套题目我并不是很擅长. 可同学们 ...
- 2016.9.15初中部上午NOIP普及组比赛总结
2016.9.15初中部上午NOIP普及组比赛总结 2016.09.15[初中部 NOIP普及组 ]模拟赛 又翻车了!表示时超和空超很可恨! 进度 比赛:AC+0+0+20=120 改题:AC+80+ ...
- 2016.9.10初中部上午NOIP普及组比赛总结
2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...
- 2016.9.3初中部上午NOIP普及组比赛总结
2016.9.3初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1339 这次真爽,拿了个第四!(我还被班主任叫过去1小时呢!) 进 ...
- 2016.8.19上午初中部NOIP普及组比赛总结
2016.8.19上午初中部NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1338 这次总结发得有点晚啊!我在这里解释一下, 因为浏览器的问 ...
随机推荐
- HTML5 & tel & make a phone call
HTML5 & tel & make a phone call 咋呼叫呀,网页怎么打电话? { key: "exploreCorpPhone", title: &q ...
- 使用IWMS的网站打开显示“未能加载文件或程序集”,解决方案
首先,会出现这样的问题原因是: 1.应用程序集里面有些事互相引用的,所以 问题有多种情况,第一.这个应用程序集出问题了: 2.它所依赖的那个程序集出问题了: 3.在项目生成的时候,代码里面有逻辑错误: ...
- Python自动化运维ansible从入门到精通
1. 下载安装 在windows下安装ansible:
- C#后台绑定select
- SQL字段类型bit 查询时注意
sql 查询时 字段=1 或 字段=0 c# 里也是
- BZOJ2151种树——模拟费用流+链表+堆
题目描述 A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树.园林部门得到指令后,初步规划出n个种树的位置,顺时针编号1到n.并且每个位置都有一个美观度Ai,如果在这 ...
- 【XSY1591】卡片游戏 DP
题目描述 有标有数字为\(1\)~\(9\)的卡片各\(a_1,a_2\cdots a_9\)张,还有标有乘号的卡片\(m\)张.从中取出\(n\)张按任意顺序排列,取出两个乘号相邻和乘法在边界上的非 ...
- CODEFORCES掉RATING记 #4
比赛:Codeforces Round #427 (Div. 2) 时间:2017.7.31晚 开场发现有6道题,都是水题(可能我只会做水题) A:比较\(2t_1+sv_1\)与\(2t_2+sv_ ...
- linux下执行sh脚本,提示Command not found解决办法
1.确保用户对文件有读写及执行权限 oracle@linux-106:~/RMAN/bin> chmod a+x test.sh 2.然后修改文件格式(如果是从winodws搬过来的会显示dos ...
- Mysql 数据备份导出
mysqldump导出整个数据库mysqldump --single-transaction --skip-lock-tables -uDBUSER -pDBPASSWD -hDBIP \--defa ...