UVALive 6467 Strahler Order 拓扑排序
来源:互联网 发布:游戏开发和java程序员 编辑:程序博客网 时间:2024/05/16 15:00
水题。给你n个点m条边。入度为0的点标为1,如果一个点只有一个点指向,那么它标为那个点的标数。如果一个点有两个或以上相同标号的点指向。那么给它标为i+1,如果有更大的话就标为更大的。求最大的标号。
拓扑排序
//First Edit Time:2014-07-15 12:40//Last Edit Time:2014-07-15 12:40//Filename:C.cpp#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>using namespace std;#define MAXN 1010#define INF_INT 0xfffff0vector <int> e[MAXN];int n,m;int dis[MAXN],cnt[MAXN],pre[MAXN];int ru[MAXN];int bfs(){ queue <int> q; for(int i=1;i<=n;i++){ dis[i]=0; pre[i]=-1; cnt[i]=0; if(ru[i]==0){ q.push(i); cnt[i]=1; dis[i]=1; } } while(!q.empty()){ int now=q.front(); q.pop(); for(int i=0;i<(int)e[now].size();i++){ int next=e[now][i]; if(pre[next]==-1){ pre[next]=dis[now]; dis[next]=dis[now]; cnt[next]=1; } else{ if(pre[next]<dis[now]){ pre[next]=dis[now]; dis[next]=dis[now]; cnt[next]=1; } else if(pre[next]==dis[now]&&cnt[next]==1){ if(dis[next]!=dis[now]+1){ dis[next]=dis[now]+1; } } } --ru[next]; if(ru[next]==0){ q.push(next); } } } int mm=dis[1]; for(int i=2;i<=n;i++) if(dis[i]>mm)mm=dis[i]; /* for(int i=1;i<=n;i++){ printf("%d ",dis[i]); } puts(""); */ return mm;}int main(){ int t,cas; scanf("%d",&t); while(t--){ scanf("%d",&cas); scanf("%d%d",&n,&m); for(int i=0;i<n+2;i++)e[i].clear(); memset(ru,0,sizeof(ru)); for(int i=0,x,y;i<m;i++){ scanf("%d%d",&x,&y); e[x].push_back(y); ++ru[y]; } printf("%d %d\n",cas,bfs()); } return 0;}
0 0
- UVALive 6467 Strahler Order 拓扑排序
- UVALive 6467 Strahler Order(拓扑排序)
- UVALive 6467 Strahler Order
- UVALive 4255 拓扑排序
- Uvalive 6264 Conservation 拓扑排序
- UVALive 7272 Promotions(拓扑排序)
- UVALive 4255 Guess【拓扑排序 】
- UVALive 4255-Guess-拓扑排序
- UVAlive 6195 拓扑排序 描述巨坑
- UValive 4255 Guess(拓扑排序)
- 【拓扑排序】 UVALive 6393 Self-Assembly
- UVALive - 4255 - Guess (拓扑排序)
- UVALive 7272 Promotions【拓扑排序】【bitset】
- UVALive 4255 前缀和 拓扑排序
- UvaLive 4255 Guess(拓扑排序)
- UVALive 7272 Promotions【拓扑排序】【bitset】
- uva 200 Rare Order (拓扑排序)
- UVa:200 Rare Order(拓扑排序)
- POJ1573
- WebKit之loader模块理解学习
- LocalLR
- printf及无符号型整数
- 程序设计竞赛ACM训练手册 从入门到精通
- UVALive 6467 Strahler Order 拓扑排序
- HDU 1856 More is better
- 学习javacv之四:输入视频,简单处理后输出
- hdu1201 18岁生日
- UVA - 11419 SAM I AM
- UVA The Settlers of Catan
- 2014 IT公司校招应届生待遇大揭秘
- J - MANAGER(2.4.5)
- 1025. 反转链表 (25)