设为首页 加入收藏

TOP

sgu-230 Weighings
2015-07-20 17:21:31 来源: 作者: 【 】 浏览:2
Tags:sgu-230 Weighings

题目大意:

给你一个n个点,m条边的有向图,然后要你求出一条经过所有点的路径,输出第i个点是第几个经过的。



解题思路:

话说这道题目我看了好久才看懂啊,毕竟英语差啊。。。。。

很水的一道题目,就是一遍拓扑排序就行了,没什么可讲的了。。。


AC代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)>(b)?(b):(a)) using namespace std; int n,m; struct bian_ { int next; int num; }bian[10010]={{0,0}}; int First[110]={0}; int hash[110]={0}; int du[110]={0}; inline void Add(int p,int q,int k) { bian[k].next=First[p]; bian[k].num=q; First[p]=k; return; } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { int p,q; scanf("%d%d",&p,&q); Add(p,q,i); du[q]++; } int dui[110]={0}; int duip=0; for(int i=1;i<=n;i++) if(du[i]==0) dui[++duip]=i; for(int i=1;i<=duip;i++) { int u=dui[i]; for(int p=First[u];p!=0;p=bian[p].next) { du[bian[p].num]--; if(du[bian[p].num]==0) dui[++duip]=bian[p].num; } } if(duip
        
         

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva 208 Firetruck (回溯) 下一篇BZOJ 3585 mex 莫队算法+分块

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)