HDU 4393 Throw nails(优先队列)】的更多相关文章

Throw nails Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1729    Accepted Submission(s): 538 Problem Description The annual school bicycle contest started. ZL is a student in this school. He…
Problem Description The annual school bicycle contest started. ZL is a student in this school. He is so boring because he can't ride a bike!! So he decided to interfere with the contest. He has got the players' information by previous contest video.…
优先队列的应用 好坑,好坑,好坑,重要的事情说三遍! #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; #define maxn 50005 struct Node { int f,s,id; friend bool operator < (Node a,Node b) { if(a.f != b.f) return a.…
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=115361#problem/D 题意大致是:给出最多50000个人,拥有最初速度F和1秒后的速度V,(F<=500,V<=100)每秒将速度最快的那个人淘汰,按淘汰的人的顺序输出他们的序号. 思路:由于人数很多,用暴力更新每秒淘汰的人显然会TLE.注意到F很小,那么对于任意两个人来说,即使有500的路程差,速度快的那个人哪怕是每秒只快1米,在501秒后就能超越,也就是说,50…
水题,优先级队列. /* 4393 */ #include <iostream> #include <sstream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <algorithm&g…
                                                                                                              Throw nails The annual school bicycle contest started. ZL is a student in this school. He is so boring because he can't ride a bike!! So he…
n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移.输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点,这样得到的序列就是从大到小的,最后倒序输出就行了. 写这题的时候头好痛阿肚子好痛阿,再也不想熬夜了,一点效率都没有. /** @Date : 2017-09-29 19:29:12 * @FileName: HDU 4857 拓扑排序 + 优先队列.cpp * @Platform: Windows * @…
用优先队列储存每个人的初始距离和编号,每轮求出最快的人,然后pop掉 一开始想遍历队列的,后来发现队列没办法遍历,汗-_-! 题意,给几个第一秒冲出的距离和以后速度,求每秒后最前面人的编号,求完后最前面的退出 2 3 100 1 100 2 3 100 5 1 1 2 2 3 3 4 1 3 4 Case #1: 1 3 2 Case #2: 4 5 3 2 1 Hint The first case: 1st Second end Player1 100m (BOOM!!) Player2 1…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 解题报告:有n个点,有m个条件限制,限制是像这样的,输入a  b,表示a必须排在b的前面,如果不能确定两个数谁排在前面则尽量把小的排在前面. 首先把出度为0的点加入到优先队列中,然后每次用优先队列中弹出的点去更新其它点的出度,更新的同时如果又有其它点的出度为0的话又加到优先队列中, 最后按照从优先队列中出队的反序输出就可以了.我还是不懂为什么按照入度为0然后加入到优先队列然后正序输出这样为什么…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1242 题目大意:多个起点到一个终点,普通点耗时1,特殊点耗时2,求到达终点的最少耗时. 解题思路: 如果没有特殊点,就是普通BFS. 由于特殊点的介入,所以BFS树的同一深度,各个点的值可能不同.所以使用优先队列,先取出值小的搜. 搜到的第一个符合条件的结果肯定是最小的,break. 注意有多个起点,所以先记录下所有起点,依次BFS找最小. #include "cstdio" #incl…