poj 3687 拓扑排序 反向建图
来源:互联网 发布:汉德尔电力监控软件 编辑:程序博客网 时间:2024/06/06 03:55
题意:给你一些条件,规划重量,满足条件,编号靠前的尽量重量小。
反向建图。
比如:3 1
3 1
正向拓扑的话,输出可能 2 3 1 也就是3 1 2(题目输出的不是排序,而是重量的方案),答案应该是3 1 2也就是 2 3 1,当然Discuss里有说正向+权重的话可以AC
题目类似与Bestcoder #1的第一题(CLJ),当时是hack大赛吧~
#define maxn 300+5int n,m;struct node{ int to,w; int next;}edge[40050];int head[maxn];int in[maxn],out[maxn];int used[maxn];int cnt;int dis[maxn];int biao;int flag;vector<int>V;void init(){ int i,j,k; memset(head,-1,sizeof(head)); cle(in); memset(dis,0x7f,sizeof(dis)); biao=dis[0]; cnt=1;}void add(int x,int y){ edge[cnt].to=y; //edge[cnt].w=val; edge[cnt].next=head[x]; head[x]=cnt++; in[y]++; out[x]++;}void getans(){ cle(used); priority_queue<int> ans; for(int i=1;i<=n;i++) { if(in[i]==0) { ans.push(i); } } while(!ans.empty()) { int temp=ans.top(); used[temp]=1; V.push_back(temp); ans.pop(); for(int j=head[temp];j!=-1;j=edge[j].next) { int v=edge[j].to; in[v]--; if(in[v]==0) { ans.push(v); } } }}int main(){ // freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int T; cin>>T; while(T--) { V.clear(); cin>>n>>m; init(); int i,j,k; for(i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); add(y,x); } cle(used); getans(); int num[maxn]; if(V.size()<n)cout<<-1<<endl; else{ int len=V.size(); for(i=V.size()-1;i>=0;i--) { num[V[i]]=len-i; } /* for(i=V.size()-1;i>=0;i--) { cout<<V[i]<<" "; } cout<<endl;*/ for(i=1;i<=n;i++) { cout<<num[i]<<" "; } cout<<endl; } } return 0;}
0 0
- poj 3687 拓扑排序 - 反向建图
- poj 3687 拓扑排序 反向建图
- poj 3687 反向建图 拓扑排序
- poj-3687-Labeling Balls-反向建图+拓扑排序
- Labeling Balls poj 3687(拓扑排序反向建图)
- POJ 3687 Labeling Balls (反向拓扑排序)
- POJ:3687 Labeling Balls (反向建图+拓扑排序+优先队列)
- POJ 3687 Labeling Balls(拓扑排序【反向建图+优先队列】)
- Labeling Balls 3687(拓扑排序+反向建图)
- HDU2647(拓扑排序+反向建图)
- poj3687反向建图+拓扑排序
- poj3687 反向建图拓扑排序
- hdu4857 逃生【反向建图+拓扑排序】
- POJ 3687 Labeling Balls (反向拓扑排序)
- POJ 3687 Labeling Balls(拓扑排序+反向思考)
- POJ - 3687Labeling Balls(反向建图 + 反向拓扑)题意坑
- hdu 3687 反向拓扑排序
- POJ 3687 拓扑排序
- 【完全版】线段树
- EMC CX4-480数据恢复案例
- C++ STL中 hash_map详细介绍
- 并查集
- 等待中。。。
- poj 3687 拓扑排序 反向建图
- js获取身份证男女
- hdu1195 bfs
- A Set of HTML Snippets for Sublime Text 2
- 【知识点】学生信息管理系统模块中ExecuteSQL函数
- java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger
- Android文章学习列表
- Andorid 在虚拟机中安装APK文件
- 经纬财富:日照现货黄金,白银行情分析