hdu 2647 Reward(拓扑排序)
来源:互联网 发布:雪人企业版是什么软件 编辑:程序博客网 时间:2024/04/19 20:33
1.反向建图,有利于计算
2.代码:
#include<cstdio>#include<cstring>#include<stdlib.h>#define Max(a,b) ((a)>(b)?(a):(b))using namespace std;typedef struct ArcNode{ int adjvex; struct ArcNode * nextarc;} ArcNode;typedef struct VNode{ int vertex; ArcNode * firstarc;} VNode;int n,m;int Stack[10005];VNode V[10005];int top;int in[10005];int level[10005];void Free(){ ArcNode * p; ArcNode * q; for(int i=1;i<=n;i++) { p=V[i].firstarc; while(p!=NULL) { q=p->nextarc; free(p); p=q; } }}int main(){ int a,b; ArcNode * p; while(scanf("%d%d",&n,&m)==2) { top=0; memset(Stack,0,sizeof(Stack)); for(int i=1; i<=n; i++) { V[i].vertex=i; V[i].firstarc=NULL; level[i]=888; in[i]=0; } for(int i=1; i<=m; i++) { scanf("%d%d",&a,&b); in[a]++; p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=a; p->nextarc=V[b].firstarc; V[b].firstarc=p; } memset(level,0,sizeof(level)); for(int i=1; i<=n; i++) { if(in[i]==0) { Stack[++top]=V[i].vertex; level[i]=888; } } int cnt=0; while(top!=0) { int j=Stack[top--]; cnt++; for(p=V[j].firstarc; p; p=p->nextarc) { int k=p->adjvex; in[k]--; level[k]=Max(level[j]+1,level[k]); if(in[k]==0) { Stack[++top]=k; level[k]=Max(level[j]+1,level[k]); } } } if(cnt==n) { int ans=0; for(int i=1;i<=n;i++) { ans+=(level[i]); } printf("%d\n",ans); } else printf("-1\n"); Free(); } return 0;}
1 0
- HDU 2647 Reward(拓扑排序)
- hdu 2647 Reward (拓扑排序)
- hdu 2647 Reward ( 拓扑排序 )
- HDU 2647 - Reward(拓扑排序)
- hdu 2647 Reward (拓扑排序)
- HDU 2647Reward(拓扑排序)
- HDU 2647 Reward(图论-拓扑排序)
- HDU 2647 Reward(图论-拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 -- Reward (拓扑排序)
- hdu 2647 Reward(拓扑排序)
- HDU-2647 Reward(拓扑排序)
- HDU 2647Reward (拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 Reward (拓扑排序)
- HDU 2647 Reward(拓扑排序)
- VS编64 bit驱动找不到头文件
- Sql Server事务日志
- Servlet的生命周期
- Centos7搭建Shadowsocks
- 二维码扫描判断安卓还是苹果下载
- hdu 2647 Reward(拓扑排序)
- Django 2.0中文书籍的第四章用测试template的时候出错的解决办法
- OepnStack集群搭建
- Infomatica抽数到DB2驱动问题,已解决
- c#中子窗体中datagridview选中一条数据,把选中数据传回父窗体,使用tag
- Perl 正则表达式
- 5.类目,延展,协议
- jquery的ajax使用
- hdu 1364 Illusive Chase