我们月赛用这题弱化了数据改了到月赛题…我居然不会…
http://www.thesky341.top 可以进去看看,题目为接热水

这题其实相对于我以前写的模拟而言是比较容易的,那么为什么会卡勒,
1.对stl 不熟悉,居然忘记 set 找数是无敌的存在
2.对题目思路理不清,无法分清里面所包含的数据结构
不多说,
这题其实可以分为三种人,排队的人,未口渴的人,口渴坐着的人
分别就对应了一个队列,一个以编号小优先的优先队列,以及一个按谁先口渴谁先排好序的数组(口渴时间同则按编号小排)
此时共两中大情况
一种是有人在排队
有人在排队是先把这个人该处理的处理了,
然后在他接水时口渴的人一个个处理,口渴前面没人,加入排队,有人则加入醒来没去行列
一种是没有人在排队
那么肯定是让坐着口渴的人先去排
如果没有坐着的人在考虑现在口渴的人去排,注意这个时候可能会有一段时间没人排,所以记得更新 nowt (去排的时间)

具体代码如下

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MA = 1e5+5;
struct stu{int w,pos;bool operator < (const stu B) const{return this->pos > B.pos;}    //优先队列 醒来人位置优先
}a[MA];//a[]为按醒来顺序一个个来!
priority_queue<stu> xinq; //醒来的在等的人
queue<stu> q; //排队 先进先出
set<int> s; //排队   有哪些人
ll ans[MA];
int comp(stu c, stu d)
{return c.w == d.w ? c.pos < d.pos : c.w < d.w;
}
int main()
{int n,P;scanf("%d%d",&n,&P);for (int i = 0; i < n; i++){scanf("%d",&a[i].w);a[i].pos = i;}sort(a,a+n,comp);ll  nowt = a[0].w;int p = 0; // nowt表示现在第几分钟 p表示现在醒了第几个 s.insert(n);  //至少留个数比较 while( p < n || !q.empty() || !xinq.empty() ){stu k;if(!q.empty()) //有人排队 {nowt += P;k = q.front(); q.pop();ans[k.pos] = nowt;  //把排第一个的事搞定 while(p < n && a[p].w <= nowt)//醒来的人何去何从 {int bian = *s.begin();//排队里面最小的编号if( a[p].pos < bian){s.insert(a[p].pos);q.push(a[p++]);}else{xinq.push(a[p++]);}} s.erase(k.pos);}else   //没人排队 {if(!xinq.empty()) //有人坐着 {k = xinq.top();xinq.pop();} else  //没人坐着 {nowt = max(nowt,(ll)a[p].w);k = a[p++];}q.push(k);s.insert(k.pos);}} for (int i = 0; i < n; i++){if(!i) printf("%I64d",ans[i]);else   printf(" %I64d",ans[i]);}
}

cf1239C (接热水)相关推荐

  1. idea删除后能还原吗_热水管能过100度热水吗

    热水管是否能过100度热水需根据水管的材质来决定,如果家中使用的是联塑水管,此类材质的水管具有较好的耐候性,软化点在131.5℃左右,安装后能过100度热水.PPR管的耐候性比较差,可承受的温度为70 ...

  2. 如何判断塑料制品可不可以装热水

    请您看一下盒子底部的标识,如果是有一个小三角形,中间有个"5"的就可以用,如果标识不是5而是别的数字就是不能用来装热水的. 乐扣的保鲜盒也有不同种类,有的是可以用来微波.加热的,有 ...

  3. 华为综合测评是什么_喝水不用等待,温度随心控随时喝到热水,测评华为智选恒温电水壶...

    人的一天补充水量大概是1.5升至1.8升水,这个水量是比较科学,当然跟个人的运动量也是有关系的,运动量越大补充的水量也越大的.我们一天要补充这么多的水,那么就要选择烧水的电器,保证我们一天都能喝到热水 ...

  4. 即时系统和非即时系统的区别?_家庭装修,能不能让热水来得快一点——即时热水系统...

    即时热水 很多小伙伴都应该体验过冬天用冷水刷牙洗脸,如果想用热水就需要放掉很多冷水,等热水来.在一般情况中,打开龙头就有热水,是别墅.大平层等高档装修,甚至豪华装修的专有. 从打开龙头,到手伸到龙头下 ...

  5. 记录某学校热水卡安全性研究

    记录某学校热水卡安全性研究 废话不多说直接进入正题 准备的工具:pn532以及usb转ttl 步骤 用上位机看看能不能直接都到数据 看来能读到,如果不能读到需要用mfcuk和mfoc去破解密码 好了, ...

  6. 热水bot协议_如何设计Bot协议

    热水bot协议 by Alex Bunardzic 由Alex Bunardzic 如何设计Bot协议 (How to Design a Bot Protocol) One of the bigges ...

  7. 分页第一页用0还是1_洗脸用冷水还是热水好?这些错误只要犯1个,你的脸就白洗了!...

    洗脸是我们每天都要做的事情,然而,并不是所有的人都会洗,更可怕的是,很多人可能第一步就错了. 而洗脸没洗对,就意味着接下来皮肤可能出现一系列的问题,比如长痘痘.毛孔粗大.皮肤干燥或容易出油...... ...

  8. 亿图图示--工业自动化模块--啤酒生产处理流程简图和热水冷凝处理架构

    啤酒生产处理流程简图 热水冷凝解决方案之P和ID

  9. 两管式出热水被截流 海尔三管大水量真正零冷水入驻天猫

    "原先家里燃气热水器出热水很慢,给宝宝洗澡的时候,大冷天衣服已经脱好了,热水还要等半天,非常容易感冒."来自青岛5岁孩子的妈妈在天猫零冷水发布会现场的视频分享了这样的经历,她还说& ...

最新文章

  1. 【Qt】QtCreator中的单例编程(以ActionManager为例)
  2. 40亿次仿真学习:人工智能5:0大胜人类飞行员!
  3. php负载均衡原理_PHP超级负载均衡
  4. 描述一下Spring框架的作用和优点?
  5. 轻量人脸检测,5个关键点
  6. 转载:Linux 的系统服务及其配置(略有修改)
  7. QBC(Query By Criteria) QBE (Query By Example)
  8. 浅谈一下session问题
  9. MySQL 8个character_set变量的基本作用
  10. 一键搞定JavaEE应用,JTM1.0(JRE+Tomcat+MySQL绿色运行环境)
  11. CNC:CNC计算机数控系统技术之斯沃数控仿真软件简介、软件界面(顶部栏、中间工具栏、左边栏、CNC工作区、液晶屏工作区、系统控制面板)之详细攻略
  12. 神经网络入门(详细 )
  13. Node.JS 字符分割
  14. (四)机器学习方法的分类
  15. CSDN高校俱乐部2013年秋季北京地区第一站“编程语言的应用及其发展”—北京联合大学
  16. cad编辑节点快捷键是什么_cad编辑节点快捷键是什么_cad进入块编辑快捷键是什么,Auto CAD进入块编辑快捷键是什么?......
  17. gateway集成swagger
  18. IDEA项目名称的中文和数字乱码文字
  19. 行高line-height,以及基线、顶线、中线和底线,还有内容区域、行内框和行框 by 豆豆猫的窝...
  20. FLStudio水果最新版本V21支持中文语言

热门文章

  1. php socket 服务端
  2. 如何创建自己的支付宝收款二维码
  3. C语言计算大写字母的个数
  4. 计算机网络—CSMA/CD协议
  5. 实体字段校验@NotNull、@NotEmpty、@NotBlank
  6. Nlog日志记录组件使用
  7. 计算机维修志愿服务,计控学院深入社区开展“电脑维修”学雷锋志愿活动
  8. 《计算机操作系统(计算机)》
  9. 机器学习之先验分布,后验分布,共轭先验分布
  10. Oracle增加修改删除字段