2830 蓬莱山辉夜

 时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 黄金 Gold

题解
 查看运行结果

题目描述 Description

在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑,亦称NEET姬
一天,她要她帮忙升级月球的网络服务器,应为注册用户过多(月兔和地球上的巫女都注册了……),所以作为代理管理员(俗称网管)的她,非常蛋疼。
注册用户格式:
TouhouMaiden 2004 200
其中前面的Touhoumaiden是预设,不做更改,第一个数是标识,第二个数是每次接受信息访问的间隔用时。
你要做的事,就是给定一群用户及n,求出这n次信息访问中,访问到了谁?

presented by Izayoi sakuya

输入描述 Input Description

以题目预设格式输入,另起一行以‘#’结束,在其一行输入n

输出描述 Output Description

n行,每行输出第行次后,信息访问到了谁?若在一个时间有若干少女被访问到,输出字典序最小的那位少女的标识

样例输入 Sample Input
TouhouMaiden 2004 200
TouhouMaiden 2005 300
#
5

样例输出 Sample Output
2004
2005
2004
2004
2005

数据范围及提示 Data Size & Hint

标识和每次信息访问间隔均在integer内,n<=10000

原本是要用到堆,但深搜+时间即可搞定

数据有点少但也都够变态了

思路:

  手写堆模拟。。

  恶心简直;

  把所有的用户名和访问间隔记录下来

  然后我们就可以开始模拟了

  先排序

  把所有的人第一顺序是时间间隔的大小

  第二顺序是用户名的字典序

  然后从一个人开始,把他的n次访问都入堆

  然后开始从第2个人的循环遍历

  把每个人的n次访问都入堆

  每入堆一次都伴随着另一个数据的出堆

  堆里个数维持在n个

  然后,当now的时间大于top的时间则出堆

  好吧,思路说的不是很明白,看代码

来,上代码:

#include <cstdio>
#include <iostream>
#include <algorithm>using namespace std;struct node {int name,now,times;
};
struct node pos[10001],cur_;class T_heap {private:int n;struct node heap[100010];public:void up(int now){if(now<=1) return ;int next=now>>1;if(heap[now].now!=heap[next].now){if(heap[now].now>heap[next].now){swap(heap[now],heap[next]);up(next);}}else{if(heap[now].name>heap[next].name){swap(heap[now],heap[next]);up(next);}}}void down(int now){int next=now,lc=now<<1,rc=now<<1|1;if(lc<=n){if(heap[lc].now!=heap[next].now){if(heap[lc].now>heap[next].now){next=lc;}}else{if(heap[lc].name>heap[next].name){next=lc;}}}if(rc<=n){if(heap[rc].now!=heap[next].now){if(heap[rc].now>heap[next].now){next=rc;}}else{if(heap[rc].name>heap[next].name){next=rc;}}}if(next!=now){swap(heap[next],heap[now]);down(next);}}void qush(struct node cur_){heap[++n]=cur_;up(n);}void pop(){heap[1]=heap[n--];down(1);}struct node top(){return heap[1];}
};
class T_heap heap;int num,n;char flag[101];bool cmp(struct node som,struct node som_)
{if(som.times!=som_.times) return som.times<som_.times;else return som.name<som_.name;
}int main()
{cin>>flag;while(flag[0]=='T'){cin>>pos[++num].name;cin>>pos[num].times;cin>>flag;}cin>>n;sort(pos+1,pos+num+1,cmp);for(int j=1;j<=n;j++){pos[1].now=pos[1].times*j;heap.qush(pos[1]);}for(int i=2;i<=num;i++){for(int j=1;j<=n;j++){pos[i].now=pos[i].times*j;cur_=heap.top();if(cur_.now!=pos[i].now){if(pos[i].now<cur_.now){heap.pop();heap.qush(pos[i]);}else break;}else{if(cur_.name>pos[i].name){heap.pop();heap.qush(pos[i]);}else break;}}}for(int i=n;i>=1;i--){pos[i]=heap.top();heap.pop();}for(int i=1;i<=n;i++) printf("%d\n",pos[i].name);return 0;
}

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6239271.html

AC日记——蓬莱山辉夜 codevs 2830相关推荐

  1. AC日记——中庸之道 codevs 2021

    2021 中庸之道  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 给定一个长度为N的序列,有Q次 ...

  2. AC日记——热浪 codevs 1557 (最短路模板题)

    1557 热浪  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 德克萨斯纯朴的民眾们这个夏天正在遭 ...

  3. AC日记——食物链 codevs 1047

    1074 食物链 2001年NOI全国竞赛  时间限制: 3 s  空间限制: 64000 KB  题目等级 : 钻石 Diamond 题解 题目描述 Description 动物王国中有三类动物 A ...

  4. codevs 2830 蓬莱山辉夜

    codevs 2830 蓬莱山辉夜 在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑,亦称NEET姬 一天,她要她帮忙升级月球的网络服务器,应为注册用户过多(月兔和地球 ...

  5. AC日记——约瑟夫问题 codevs 1282

    1282 约瑟夫问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解  查看运行结果 题目描述 Description 有编号从1到N的N个小朋友在玩 ...

  6. 【codevs 2830】蓬莱山辉夜

    作为一个有图的题,竟然描述如此不清楚,表示愤慨 其实就是个堆--可这是个语文题啊语文题!!!! 题目描述 在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑,亦称NEET ...

  7. AC日记——丑数 codevs 1246

    1246 丑数 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 对于一给定的素数集合 ...

  8. AC日记——爱改名的小融 codevs 2967

    2967 爱改名的小融  时间限制: 1 s  空间限制: 16000 KB  题目等级 : 白银 Silver 题解 题目描述 Description Wikioi上有个人叫小融,他喜欢改名. 他的 ...

  9. AC日记——传染病控制 洛谷 P1041

    传染病控制 思路: 题目想问的是: 有一棵树: 对于除1外每个深度可以剪掉一棵子树: 问最后剩下多少节点: 题目意思一简单,这个题立马就变水了: 搜索就能ac: 数据有为链的情况,按深度为层次搜索的话 ...

最新文章

  1. 量子信息之父辞世,开山论文写完14年才被发表,晚年去当建筑工人
  2. SQL存储过程解密研究
  3. java 页面换行处理
  4. CVPR2021-PaperWithCode
  5. AT4513-[AGC030D]InversionSum【dp】
  6. 电大法学本科计算机考试题,2016年电大-电大法学本科计算机网考答案.doc
  7. python 线程退出_python线程退出
  8. 交换排序之冒泡排序(java实现)
  9. 从虚拟主机时代说起,详述Kubernetes带来的变革
  10. android光标属性设置,光标设置、hint设置
  11. 《卸甲笔记》-PostgreSQL和Oracle的SQL差异分析之三:rownum和聚合函数
  12. Java面试题总结(二)
  13. 控制终端, 用户登录、mail、hostname、随机数 (笔记)
  14. ABB伺服驱动调试(三)
  15. 验证集与测试集的区别
  16. 贴吧老矣,尚能饭否?
  17. String 与 char* 相互转换
  18. 人大与加拿大女王大学金融硕士在短学制中成就别样的人生
  19. 微信头像更新了,有你喜欢的吗?
  20. 1.8 信息系统服务管理

热门文章

  1. 掌握Quick Basic编程的,都是OS操作系统自编程的精英人才
  2. 教你如何利用博客推广网站
  3. CISSP第三章 访问控制
  4. 大佬带你看DevOps
  5. todo谷粒商城二本地虚拟机环境搭建及项目初始化
  6. 中艺人脸识别考勤机使用方法_人脸识别考勤机的使用方法及注意事项
  7. Origami-pdf Origami是一个Ruby框架
  8. 合工大计算机考研数学,[考研干货]一战上岸合肥工业大学,来给大家分享一下考研心得...
  9. 计算机代码1e1代表什么意思,热水器上显示E1是什么意思
  10. ARM汇编学习拾贝 (持续更新)