HDU - 1285: 确定比赛名次

简介: HDU - 1285: 确定比赛名次

题目链接:点击打开链接

题目大意:略。

解题思路:略。

AC 代码

#include<bits/stdc++.h>#include<cmath>#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007usingnamespacestd;
typedeflonglongll;
constintmaxn=520;
intn;
intg[maxn][maxn], in[maxn];
priority_queue<int,vector<int>,greater<int>>pq;
vector<int>vec;
voidinit()
{
mem(g,0), mem(in,0);
while(!pq.empty()) pq.pop();
vec.clear();
}
voidtopo()
{
for(inti=1;i<=n;i++)
if(in[i]==0) pq.push(i);
inttp;
while(!pq.empty())
    {
tp=pq.top(); pq.pop();
vec.push_back(tp);
for(inti=1;i<=n;i++)
if(g[tp][i] &&--in[i]==0) pq.push(i);
    }
}
intmain()
{
intm,u,v;
while(~scanf("%d%d",&n,&m))
    {
init();
for(inti=0;i<m;i++)
        {
scanf("%d%d",&u,&v);
if(g[u][v]==0&&u!=v)
            {
g[u][v]=1;
in[v]++;
            }
        }
topo();
if(vec.size()!=n) puts("-1");
else        {
for(inti=0;i<vec.size();i++)
printf("%d%c",vec[i],i==vec.size()-1?'\n':' ');
        }
    }
return0;
}
目录
相关文章
|
1月前
leetcode-506:相对名次
leetcode-506:相对名次
47 0
|
1天前
OJ刷题:猜名次和找凶手
OJ刷题:猜名次和找凶手
4 0
|
27天前
NYOJ-757-期末考试
NYOJ-757-期末考试
15 0
|
1月前
leetcode:506. 相对名次
leetcode:506. 相对名次
20 0
|
12月前
|
测试技术 C++ Python
糖果-蓝桥杯19省赛
糖果-蓝桥杯19省赛
79 0
|
Java C语言 C++
【蓝桥杯基础题】2020年省赛填空题—既约分数
【蓝桥杯基础题】2020年省赛填空题—既约分数
116 0
【蓝桥杯基础题】2020年省赛填空题—既约分数
刷题:运动员猜名次,从能解决到完美解决的代码进阶
刷题:运动员猜名次,从能解决到完美解决的代码进阶
44 0
|
C++
蓝桥杯练习题一 - 生日蜡烛(c++)
蓝桥杯练习题一 - 生日蜡烛(c++)
125 0
|
测试技术
HDU-4508,湫湫系列故事——减肥记I(完全背包)
HDU-4508,湫湫系列故事——减肥记I(完全背包)
HDOJ 1285 确定比赛名次(拓扑排序)
HDOJ 1285 确定比赛名次(拓扑排序)
127 0