• UVA 10305 Ordering Tasks 解题报告


    题意:给定你n项工作,m个依赖关系(某件工作必须在另一件工作之前),求出一个满足条件的序列

    解题思路:深搜,假如x必须在y之前,那么map【y】【x】 = 1;先把没有前提的工作进入序列,然后遍历工作,如果一个工作没有进入序列那么深搜map 。。。

    解题代码:

    // File Name: uva10305.c
    // Author: darkdream
    // Created Time: 2013年06月15日 星期六 17时27分55秒
    
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    int map[105][105];
    int canvisit[105];
    int visit[105];
    int ans[105] ;
    int j ,n;
    void dfs(int k )
    { 
        for(int i =  1;i <= n;i ++)
        {
          if(map[k][i] == 1 && !visit[i])
              dfs(i);
        }
            j ++;
        ans[j] = k;
        visit[k] = 1;
    
    }
    int main(){
    
       //freopen("/home/plac/problem/input.txt","r",stdin);
       //freopen("/home/plac/problem/output.txt","w",stdout);
       int m ;
       while(scanf("%d %d",&n,&m) != EOF)
       {
    
         if(n == 0 )
             break;
         memset(map,0,sizeof(map));
         memset(visit,0,sizeof(visit));
         memset(canvisit,0,sizeof(canvisit));
         memset(ans,0,sizeof(ans));
         int a, b;
         for(int i =1 ;i <= m;i ++)
         {
            scanf("%d %d",&a,&b);
            map[b][a] = 1;
            canvisit[b] = 1;
         }
         j = 0 ;
         for(int i =1 ;i <= n;i ++)
         {
           if(canvisit[i] == 0 )
           {
             visit[i] = 1;
             j ++;
             ans[j] = i;
           }
         }
         for(int i =1 ;i <= n;i ++)
         {
            if(!visit[i])
              dfs(i);
         }
         for(int i =1; i <= j;i ++)
           printf("%d ",ans[i]);
         printf("\n");
       }
    return 0 ;
    }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    构造 BestCoder Round #52 (div.2) 1001 Victor and Machine
    multiset || 线段树 HDOJ 4302 Holedox Eating
    BFS(最短路) HDOJ 4308 Saving Princess claire_
    组合数专题
    余数专题
    数论 HDOJ 5407 CRB and Candies
    异或+构造 HDOJ 5416 CRB and Tree
    构造 HDOJ 5414 CRB and String
    背包DP HDOJ 5410 CRB and His Birthday
    博客贴自定义高亮代码
  • 原文地址:https://www.cnblogs.com/zyue/p/3137873.html
Copyright © 2020-2023  润新知