给出几组比赛的胜负情况。判断最后的排名。根据题意这就是一个明显的拓扑排序问题了。
注意
如果因为可能的排名有多种情况,这时要保证编号小的在前。
题目输入的数据可能有重复边
拓扑排序
首先统计每个结点的入度。将度为0的结点编号放入队列(此题放入优先队列中)中。
然后进行循环:
取出队头结点,视作边的起点。
然后“删除与该点相连的边”,代码就是将这个图中的该边另一个结点(即终点)的入度减一;
如果减一以后,终点的入度变为了0,那么将终点的编号入队列。
判断队列是否为空,若不空,则回到1...
分类:
其他好文 时间:
2014-07-19 02:25:55
阅读次数:
175
优先队列(priority queue)对于一般的队列是在队列的尾部添加数据,在头部删除,以便先进先出。而优先队列中的每个元素都有一个优先级,每次将一个元素放入队列中,而每次出队时都是将优先级最大的那个元素出队,称为高进先出(largest-in,first-out)。优先队列必须实现以下几个操作1...
分类:
其他好文 时间:
2014-07-18 18:35:23
阅读次数:
287
为了准备算法考试刷的,想明白一点就行,所有的传送门相当于一个点,当遇到一个传送门的时候,把所有的传送门都压入队列进行搜索
贴代码:
#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 5000+50;
int r,c,f,si,sj,ei,ej,ans;...
分类:
其他好文 时间:
2014-07-18 14:08:32
阅读次数:
245
背景:
在多媒体和图像处理等应用中,经常用到大块内存,尤其是硬件编解码,需要内核分配大块的物理连续内存。
这里希望通过把从内核分配的连续物理内存映射到用户空间,在用户空间经过处理,又可以入队到驱动中。
前提:
Kernel Config中 根据需求配置和调整CMA的大小。
方法:
(一)
1、驱动注册misc设备;
2、驱动实现IOCTL的内存分配,使用dma_alloc_writ...
分类:
其他好文 时间:
2014-07-18 11:30:45
阅读次数:
256
题意:给N个点,还有另外m个点(其中只能选K个),求最短路。
思路:在SPFA的基础上,用一个数组来统计,在某点入队时(要拓展其他点了),若该点是m个点中的,则count【i】=原来的+1;若不是,则继承原来的。出队时候限制一下,若大于K了,就停止拓展。
原题:目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都
固定在某个点上。任何两个无线路由器只要距离不超过 r 就能互相建立...
分类:
其他好文 时间:
2014-07-16 14:16:43
阅读次数:
258
将兔子的血量从小到大排序,箭的威力也从小到大排序,
对于每只兔子将威力大于血量的箭加入队列,写个优先队列使得出来数位价钱最少。。
#include
#include
#include
#include
#include
using namespace std;
const int maxn=100010;
struct tt
{
int d;
int p;
bool operator<...
分类:
其他好文 时间:
2014-07-15 12:52:52
阅读次数:
321
首先要知道选择行列操作时顺序是无关的
用两个数组row[i],col[j]分别表示仅选择i行能得到的最大值和仅选择j列能得到的最大值
这个用优先队列维护,没选择一行(列)后将这行(列)的和减去相应的np (mp)重新加入队列
枚举选择行的次数为i,那么选择列的次数为k - i次,ans = row[i] + col[k - i] - (k - i) * i * p;
既然顺序无关,...
分类:
其他好文 时间:
2014-07-14 16:44:35
阅读次数:
205
题目要求必须按照L O V E 的顺序行走,且必须至少有一个完整的LOVE,说明可以经过同一个点多次
对每个点拆分为4个点,分别为从L,O,V,E到达。起始点看做是从E到达的
spfa时发现当前点距离相同,比较经过的边数,此时若边数更大,也要入队列!因为要更新后面的点经过的边数
trick 是点可以有自环,当N = 1时
1 4
1 1 1 L
1 1 1 O
1 1 1 V
1 ...
分类:
其他好文 时间:
2014-07-13 00:11:22
阅读次数:
356
这个题目是拓扑排序,因为边的数目非常大,所以普通的建图会爆内存,所以这里采用vector容器。
1:建完图后对入度为0的点加入队列,然后对整幅图进行扫描,得到每个点的位置。
2:要用一个数组存相对位置,所以不能只用一个变量存储,因为每次出队列只能有一个元素。。
2:用数组模拟果然比stl快一些。。。
题目链接:
哈哈 我在这里
题面:
Reward
Time Limit...
分类:
其他好文 时间:
2014-07-12 16:35:07
阅读次数:
292
引言:
队列与栈的区别是队列是先进先出的数据结构。为了使得出入队列容易,可以引入队列头指针和队列尾指针。
分析描述:
队列的结点结构。
typedef int QElemType;
typedef struct QNode{
QElemType data;
struct QNode *next;
}QNode, *QueuePtr;...
分类:
其他好文 时间:
2014-07-10 19:28:47
阅读次数:
197