暂无链接

电梯(lift)

题目背景

打完昆特牌后你不准备参加 NOIPNOIPNOIP 模拟赛了,因为你有更重要的赛事— NOGPNOGPNOGP(National
Olympiad in Gwent in Provinces)你现在要上电梯去 NNN 楼参加 NOGPNOGPNOGP。在你从 111 楼上电梯的同
时,你发现另有一台空电梯从 111 楼同时向 NNN 楼向上。

题面描述

NNN 层楼中有 MMM 层楼 (除了 111 层、NNN 层) 被标记了,如果有电梯到达有标记的层数时会停下来 1s1s1s , 然后标记会消失。因为标记消失了,所以下面一台电梯到这一层时就不会再停了。而且如果你的电梯和旁边电梯一起到达标记的层数的话,是你的电梯停下来,而旁边电梯会继续往上,然后标记消失。在电梯里的你也可以按下一些内部的按钮使自己的电梯在某层停下 1s1s1s (除了 111 层、NNN层)。而旁边的电梯不能让自己停 1s1s1s 。

你觉得输给一台空电梯非常丢脸,现在求在你不慢于空电梯的情况下最快在什么时候达到楼顶。若你不能不慢于空电梯,输出 −1-1−1。电梯上一层楼所需时间为 1s1s1s。注意在一层楼你只能停一次

输入数据

第一行一个 TTT 表示数据组数

接下来每行五个数 N、M、a、b、cN、M、a、b、cN、M、a、b、c

下面给出生成 MMM 层被标记的层数的方法:

f[i]表示第i个生成的被标记的层数f[i] 表示第i个生成的被标记的层数f[i]表示第i个生成的被标记的层数

f[1]=cmod(N−2)+2f[1]=c\ mod\ (N-2)+2f[1]=c mod (N−2)+2

f[i]=(f[i−1]×a+b)mod(N−2)+2f[i]=(f[i-1]\times a+b)\ mod\ (N-2)+2f[i]=(f[i−1]×a+b) mod (N−2)+2

若生成的f[i]已经被标记了,则f[i]=现在最低的没有被标记的那一层(第1层除外)若生成的 f[i] 已经被标记了,则f[i]=现在最低的没有被标记的那一层(第1层除外)若生成的f[i]已经被标记了,则f[i]=现在最低的没有被标记的那一层(第1层除外)

输出数据

对每行数据输出一行答案。

样例数据
INPUT

3
5 3 1 8 2
4 2 6 1 1
7 2 3 1 3

OUTPUT

6
4
7

样例解释

第一份数据:(下文 表示你的电梯, 表示空电梯)
一共五层楼,中间三层都被按了按扭
1s 上 2
2s 停, 上 3
3s 上 3, 停 3
4s 主动停 3, 上 4
5s 上 4, 停 4
6s 上 5, 上 5

数据范围

对于 20%的数据,N≤10N≤10N≤10, M≤10M≤10M≤10

对于 60%的数据,N≤1000N≤1000N≤1000, M≤1000M≤1000M≤1000

对于 100%的数据

N≤107N≤10^7N≤107, M≤107M≤10^7M≤107, T≤10T≤10T≤10,N≥M+2N≥M+2N≥M+2,0≤a、b、c≤10000≤a、b、c≤10000≤a、b、c≤1000,N≥3N≥3N≥3,M≥1M≥1M≥1

题解

仔细想想贪心策略,你会发现答案貌似是跟按按钮的具体楼层无关的。

当mmm为偶数的时候,我们不需要做任何操作,跟着空电梯一起向上,就能每个电梯接一半乘客从而一起到楼顶;当mmm为奇数时,我们需要在最后一个按按钮的楼层之前停下,让空电梯先上去接人,从而一起到楼顶。

注意,因为第一层楼无法停下,所以二楼的乘客我们必须接,当只有二楼被按得时候我们无法与空电梯持平,所以输出−1-1−1。

代码
#include<bits/stdc++.h>
using namespace std;
int n,m,c,T;
void in(){scanf("%d%d%*d%*d%d",&n,&m,&c);}
void ac()
{if(c%(n-2)==0&&m==1)puts("-1");else if(m&1)printf("%d\n",n+(m>>1));else printf("%d\n",n+(m>>1)-1);
}
int main(){for(scanf("%d",&T);T--;)in(),ac();}

[2018.10.31 T2] 电梯相关推荐

  1. 训练日志 2018.10.31

    上周把图的连通性看完了,也做了些有关的题. 图的遍历内容的欧拉回路 Fleury 算法还不太熟练,哈密尔顿回路还没开始,这周争取把图的遍历以及拓扑排序看完,再做些题. 2018.10.31

  2. 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31

    10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 5. ...

  3. 2018.10.31模拟赛

    T1 lgg L 君和 G 君在玩一个游戏.G 君写下一个字符串 A,L 君将其复制一遍连接到 A 串后面得 到字符串 B, G 君又在 B 的任意位置(包括首尾)插入一个字符得到字符串 C.现在你得 ...

  4. ssl提高组周三备考赛【2018.10.31】

    前言 呆学校呆3天依旧不想复习期中,感觉要凉. 成绩 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 111 2017mysel ...

  5. Noip 模拟 13 2018/10/31

    T1:铃仙的红色之瞳(eyes) 为了方便你的预测,铃仙对该符卡进行了改造. 敌方非常强大,可以看作有无限的体力.通过该符卡,铃仙可以释放出子弹,敌方触碰到子弹就会损失一格体力.注意,每次敌方损失体力 ...

  6. P2628 冒险岛 AC于2018.10.31

    原题 题目背景 冒险岛是费老师新开发的一种情景模拟电脑的游戏,通过掷骰子(1~6个数字之间),让一种人物(棋子)在棋纸上从左至右的行走,从而模拟冒险的故事-- 题目描述 棋纸上有一条从左至右的很长的路 ...

  7. 【比赛报告】2018.10.11校赛[8-2情人节欢乐赛] NOIP练习赛卷十二

    比赛时间:2018.10.10 选手:lrllrl 成绩 100+100+100=300 用时:约1h T1 果实计数 显然易得,答案为 b n m o d    k b^n\mod k bnmodk ...

  8. 2018.10.9模拟赛

    2018.10.9模拟赛 T1 trade 正解:贪心 据说lyd讲过但并没有印象QAQ,考场上现推浪费了不少时间 其实就开个小根堆,每次把堆顶取出来看它是不是比当前的 a[i]a[i]a[i] 小, ...

  9. 【比赛报告】2018.10.15校赛[2015-9-13 NOIP模拟赛 by hzwer] NOIP练习赛卷十四

    比赛时间:2018.10.15 选手:lrllrl 用时:2h 得分:100+10+90=200 最初想法是一个背包问题.首先背包问题的模型肯定是不行的,但是我们可以列出状态转移方程后发现,每个状态决 ...

  10. 10.31纪中DAY3_公牛和母牛 气象牛 轻轨 设计

    noip2019-counting down three weeks 纪中day3 (头发日益稀少) 10.31纪中B组notes 公牛和母牛(USACO FEB09 Problem 'bullcow ...

最新文章

  1. java递归遍历目录文件
  2. jQuery入门第三天
  3. 高数学习笔记:计算方向导数
  4. 搜狗赴美上市:首日涨3.8%,王小川哽咽感谢母亲
  5. Makefile 中all:的作用
  6. 一种简单的加解密算法
  7. Oracle exists与not exists的用法总结
  8. PS制作(LOGO)步骤流程
  9. 网易互娱AI研究工程师实习生一面——记人生的第一次面试
  10. MATLAB 像素画绘制APP
  11. Cantor表 [cantor]
  12. mysql error 1837_MySQL复制错误1837的相关缺陷一例——insert delay在GTID下异常binlog格式...
  13. 所属云服务器无效,常见错误码及解决方案
  14. php 促销方案,七步就轻松搞定,促销活动方案
  15. 基于ssm+mysql的javaee微博博客系统,Java实现类似新浪微博网站、朋友圈分享系统
  16. 怎么做安全生产月PPT专题课件?
  17. js将图片转base64两种方法
  18. 国内头部游戏本地化服务商 安睿杰本地化翻译
  19. 最全的Android/IOS等常用的WebService服务列表(本人整理)--值得收藏 留着说不定你就用到了
  20. 杂七杂八知识点的摸索

热门文章

  1. 1091.二进制矩阵中的最短路径(力扣leetcode) 博主可答疑该问题
  2. java按钮鼠标_我想用java做一个鼠标永远点不到button的应用,下面这个程序的错误在哪?...
  3. 数据结构与算法python语言描述第三章课后答案_《数据结构与算法Python语言描述》习题第二章第三题(python版)...
  4. linux端口被墙了 开通端口
  5. C# 读取Sqlite数据库的Datetime类型 会报错(时间格式不正确)
  6. MySQL Password Expired
  7. 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
  8. python取反运算
  9. 虚拟机下liunx安装jdk
  10. apache+nginx 实现动静分离