题目传送门:hdu1873看病要排队
这道题可以使用优先队列,然后自定义优先级。其余的注意细节然后就没什么问题了。
AC代码如下:#include
#include
#include
#include
#include
using namespace std;
struct man
{
int du,nu...
分类:
其他好文 时间:
2015-03-31 09:14:02
阅读次数:
195
题意:有n行含m个元素序列,从每行取一个数得到他们的和,一共可以得到m^n个和。输出前n个最小的和。
思路:可以用优先队列递归解决,当只取前两行的数,得到两个数的和的前n小的序列。这个序列就相当于把第一行和第二行合并,再解决n-1行的子问题。
用优先队列解决的时候也有点小技巧,类似尺取法。
//236 KB 563 ms C++ 1480 B
#include
#include
#incl...
分类:
其他好文 时间:
2015-03-30 13:28:22
阅读次数:
151
题目大意:输入一颗无根树的括号序列,求这棵树的普吕弗序列。 分析思路: 1)普吕弗序列,可以参考维基百科,其做法是找出树中编号最小的叶子节点,并将此叶子节点及边删除,并输出其邻接的节点标号; 2)递归地构造树,可以使用list 数组来表示一个“邻接表”,以存储构造的树; 3)使用优先队列来进行删除,...
分类:
其他好文 时间:
2015-03-29 17:46:35
阅读次数:
136
题意:n个点m条有向边组成的有向无环图,可以最多删除k条边让他的拓扑序最大。输出最大的拓扑序。
思路:在以前的topsort中是入读为零的点入队列,这里有k次机会可以删除边,那么我就把所有入度<=k的点全入队列,用优先队列维护最大的点序列号,去掉点最大序列号的所有入边,将它加入到拓扑序中,这样贪心是最优的。...
分类:
其他好文 时间:
2015-03-29 10:55:34
阅读次数:
144
01:枚举每个位置,求出期望,累加起来就是答案,注意最后要约分
02:这题居然被我用优先队列瞎搞过了,估计是数据水了,正解是要用线段树,做一个拓扑排序的时候,每次取出当前节点中,度数小于等于k的,下标最大的点,这个用线段树很好维护
代码:
01:
#include
#include
#include
using namespace std;
typedef long long ll...
分类:
其他好文 时间:
2015-03-29 10:48:31
阅读次数:
125
题意:给你一个集合,动态插入 ,动态询问,然后问你这个集合的sg值(这个集合用加法运算不能产生的那个最小正整数)是多少.解题思路:假设我们现在的这个SG值是 x 1)现在插入集合里面一个数v 如果这个v > x ,那么显然 sg值x不变, 把v放进从小到大的优先队列中2)如果这个 v 6 #in.....
分类:
其他好文 时间:
2015-03-29 10:35:27
阅读次数:
108
//这题可算是历经千辛万苦才算ac了
//建图,然后就拓扑序,
//还是官方的bc的题解出的好
//贪心取编号最大的点
//令du[i]<=k的i进入优先队列
//然后依次整就行了,
//每次取出的点,判断一下
//是否du[i]<=k,如果小于
//依次遍历与他相邻的点,
//在这些相邻的点中找到du[j]<=k
//且不在队列当中的i的值,
//开始用g++交题,一直TL...
分类:
其他好文 时间:
2015-03-29 09:30:03
阅读次数:
121
传送门DZY Loves Topological SortingTime Limit: 4000/2000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 221Accepted Subm...
分类:
编程语言 时间:
2015-03-29 09:24:34
阅读次数:
259
优先队列
#include bits/stdc++.h>using namespace std;struct cmp{ bool operator() (const int a, const int b) const{ return a%10 > b%10;///定义个位数小的优先级大 }};int main(){ priority_queueint, vecto...
分类:
其他好文 时间:
2015-03-28 08:59:02
阅读次数:
128
题意:从C有奶牛中选N头,给出它们的分数scores和资助aid,要是这N头牛的总资助不超过F,同时它们中分数的中位数最大。求这个最大的中位数。
思路:按照分数排序,枚举每头牛作为中位数,计算牛i前面N/2头牛的最小资助和后面N/2牛的最小资助(用到优先队列)。最后从后往前找第一个满足l[i]+r[i]+cow[i].second<=F的即为答案。...
分类:
其他好文 时间:
2015-03-21 17:13:09
阅读次数:
247