HDU - 1285: 确定比赛名次

题目链接:点击打开链接

 

题目大意:略。

 

解题思路:略。

 

AC 代码

#include
#include

#define mem(a,b) memset(a,b,sizeof a)
#define ssclr(ss) ss.clear(), ss.str("")
#define INF 0x3f3f3f3f
#define MOD 1000000007

using namespace std;

typedef long long ll;

const int maxn=520;

int n;
int g[maxn][maxn], in[maxn];
priority_queue,greater> pq;
vector vec;

void init()
{
    mem(g,0), mem(in,0);
    while(!pq.empty()) pq.pop();
    vec.clear();
}

void topo()
{
    for(int i=1;i<=n;i++)
        if(in[i]==0) pq.push(i);

    int tp;
    while(!pq.empty())
    {
        tp=pq.top(); pq.pop();
        vec.push_back(tp);
        for(int i=1;i<=n;i++)
            if(g[tp][i] && --in[i]==0) pq.push(i);
    }
}

int main()
{
    int m,u,v;
    while(~scanf("%d%d",&n,&m))
    {
        init();
        for(int i=0;i

 

你可能感兴趣的:(#,ACM,#,HDU,#,Topo)