AC日记——蓬莱山辉夜 codevs 2830
2830 蓬莱山辉夜
在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑,亦称NEET姬
一天,她要她帮忙升级月球的网络服务器,应为注册用户过多(月兔和地球上的巫女都注册了……),所以作为代理管理员(俗称网管)的她,非常蛋疼。
注册用户格式:
TouhouMaiden 2004 200
其中前面的Touhoumaiden是预设,不做更改,第一个数是标识,第二个数是每次接受信息访问的间隔用时。
你要做的事,就是给定一群用户及n,求出这n次信息访问中,访问到了谁?
presented by Izayoi sakuya
以题目预设格式输入,另起一行以‘#’结束,在其一行输入n
n行,每行输出第行次后,信息访问到了谁?若在一个时间有若干少女被访问到,输出字典序最小的那位少女的标识
TouhouMaiden 2004 200
TouhouMaiden 2005 300
#
5
2004 2005 2004 2004 2005
标识和每次信息访问间隔均在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相关推荐
- AC日记——中庸之道 codevs 2021
2021 中庸之道 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 给定一个长度为N的序列,有Q次 ...
- AC日记——热浪 codevs 1557 (最短路模板题)
1557 热浪 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 德克萨斯纯朴的民眾们这个夏天正在遭 ...
- AC日记——食物链 codevs 1047
1074 食物链 2001年NOI全国竞赛 时间限制: 3 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 动物王国中有三类动物 A ...
- codevs 2830 蓬莱山辉夜
codevs 2830 蓬莱山辉夜 在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑,亦称NEET姬 一天,她要她帮忙升级月球的网络服务器,应为注册用户过多(月兔和地球 ...
- AC日记——约瑟夫问题 codevs 1282
1282 约瑟夫问题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 有编号从1到N的N个小朋友在玩 ...
- 【codevs 2830】蓬莱山辉夜
作为一个有图的题,竟然描述如此不清楚,表示愤慨 其实就是个堆--可这是个语文题啊语文题!!!! 题目描述 在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑,亦称NEET ...
- AC日记——丑数 codevs 1246
1246 丑数 USACO 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 对于一给定的素数集合 ...
- AC日记——爱改名的小融 codevs 2967
2967 爱改名的小融 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 白银 Silver 题解 题目描述 Description Wikioi上有个人叫小融,他喜欢改名. 他的 ...
- AC日记——传染病控制 洛谷 P1041
传染病控制 思路: 题目想问的是: 有一棵树: 对于除1外每个深度可以剪掉一棵子树: 问最后剩下多少节点: 题目意思一简单,这个题立马就变水了: 搜索就能ac: 数据有为链的情况,按深度为层次搜索的话 ...
最新文章
- 量子信息之父辞世,开山论文写完14年才被发表,晚年去当建筑工人
- SQL存储过程解密研究
- java 页面换行处理
- CVPR2021-PaperWithCode
- AT4513-[AGC030D]InversionSum【dp】
- 电大法学本科计算机考试题,2016年电大-电大法学本科计算机网考答案.doc
- python 线程退出_python线程退出
- 交换排序之冒泡排序(java实现)
- 从虚拟主机时代说起,详述Kubernetes带来的变革
- android光标属性设置,光标设置、hint设置
- 《卸甲笔记》-PostgreSQL和Oracle的SQL差异分析之三:rownum和聚合函数
- Java面试题总结(二)
- 控制终端, 用户登录、mail、hostname、随机数 (笔记)
- ABB伺服驱动调试(三)
- 验证集与测试集的区别
- 贴吧老矣,尚能饭否?
- String 与 char* 相互转换
- 人大与加拿大女王大学金融硕士在短学制中成就别样的人生
- 微信头像更新了,有你喜欢的吗?
- 1.8 信息系统服务管理
热门文章
- 掌握Quick Basic编程的,都是OS操作系统自编程的精英人才
- 教你如何利用博客推广网站
- CISSP第三章 访问控制
- 大佬带你看DevOps
- todo谷粒商城二本地虚拟机环境搭建及项目初始化
- 中艺人脸识别考勤机使用方法_人脸识别考勤机的使用方法及注意事项
- Origami-pdf Origami是一个Ruby框架
- 合工大计算机考研数学,[考研干货]一战上岸合肥工业大学,来给大家分享一下考研心得...
- 计算机代码1e1代表什么意思,热水器上显示E1是什么意思
- ARM汇编学习拾贝 (持续更新)