计蒜客 计蒜机(优先队列+思路,没想到)
来源:互联网 发布:米家声波电动牙刷知乎 编辑:程序博客网 时间:2024/06/16 05:15
题目:
题目思路:我们只要把注册的 ID 全部放入堆里面,然后按照时间小优先级高的方式,每次从堆中取走时间最小的 ID。然后把该 ID 的时间增加该 ID 的间隔时间后再次放入堆中,就可以了。
学到的东西:一开始没有想到这一方面,题目的优先级没有分析清楚,思路很重要。
代码:
#include <bits/stdc++.h>using namespace std;struct node{ int num;//注册的号码 int time;//实际的时间 int atime;//开始时的时间 friend bool operator<(node a,node b){//在这里重载<代表b的优先级高 if(a.time>b.time) return true;//b小优先级高 if(a.time==b.time&&a.num>b.num) return true; return false;//false 不要忘记写 }};int main(){ priority_queue<node>Q; string s; node tmp; while(cin>>s){ if(s[0]=='#') break; int x,y;cin>>x>>y; tmp.num=x; tmp.time=y; tmp.atime=y; Q.push(tmp); } int k;scanf("%d",&k); while(k--){ tmp=Q.top();Q.pop(); cout<<tmp.num<<endl; tmp.time+=tmp.atime; Q.push(tmp); } return 0;}
阅读全文
1 0
- 计蒜客 计蒜机(优先队列+思路,没想到)
- Dijkstra算法 用优先队列(思路)
- UVALive 4097 Yungom (思路--set||优先队列的模拟)
- 计蒜客 踩蚂蚁(优先队列)
- 左式堆(优先队列)
- 优先队列(堆)
- hdu4006(优先队列)
- 优先队列(priority_queue)
- 优先队列(堆)
- hdu3873 (优先队列)
- priority_queue(优先队列)
- 优先队列(堆)
- UVA1203Argus(优先队列)
- 优先队列(二)
- Stones(优先队列)
- priority_queue(优先队列)
- 优先队列(堆)
- 优先队列(堆)
- HTTP状态码
- jQuery 1.3.2 简单实现select二级联动
- HihoCoder
- FatMouse's Speed HDU
- C++的单例模式与线程安全单例模式(懒汉/饿汉)
- 计蒜客 计蒜机(优先队列+思路,没想到)
- RMQ初学
- leetcode 442. Find All Duplicates in an Array
- 华为机试: 计算字符串的相似度、输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- GET和POST
- 阿里巴巴最新面试经验
- Android零基础入门第29节:善用TableLayout表格布局,事半功倍
- CentOS和Window互相远程桌面方法
- React 实践项目 (四)