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;
}
目录
相关文章
|
5月前
OJ刷题:猜名次和找凶手
OJ刷题:猜名次和找凶手
28 0
|
6月前
NYOJ-757-期末考试
NYOJ-757-期末考试
26 0
题目 2664: 蓝桥杯2022年第十三届省赛真题-求和
题目 2664: 蓝桥杯2022年第十三届省赛真题-求和
|
Java C语言 C++
【蓝桥杯基础题】2020年省赛填空题—既约分数
【蓝桥杯基础题】2020年省赛填空题—既约分数
【蓝桥杯基础题】2020年省赛填空题—既约分数
|
C++
蓝桥杯练习题一 - 生日蜡烛(c++)
蓝桥杯练习题一 - 生日蜡烛(c++)
163 0
|
测试技术
HDU-4508,湫湫系列故事——减肥记I(完全背包)
HDU-4508,湫湫系列故事——减肥记I(完全背包)
|
存储 安全 算法
80分钟100分,83行代码决赛优秀选手如何解题?
由阿里云云效主办的2021年第3届83行代码挑战赛已经收官。超2万人围观,近4000人参赛,85个团队组团来战。大赛采用游戏闯关玩儿法,融合元宇宙科幻和剧本杀元素,让一众开发者玩得不亦乐乎。
414 0
80分钟100分,83行代码决赛优秀选手如何解题?
HDOJ 1285 确定比赛名次(拓扑排序)
HDOJ 1285 确定比赛名次(拓扑排序)
139 0