zoukankan      html  css  js  c++  java
  • HDU 1150

    加深了我对最小点覆盖的理解
    将每个任务的两台机器连线,问题是选取最少的点来覆盖所有的连线,即最小点覆盖

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 #include <vector>
     5 using namespace std;
     6 const int maxn=105;
     7 vector<int>map[105];
     8 int link[maxn],vis[maxn];
     9 int n,m,k;
    10 bool dfs(int t)
    11 {
    12     int i,x,size=map[t].size();
    13     for(i=0;i<size;i++)
    14     {
    15         x=map[t][i];
    16         if(!vis[x])
    17         {
    18             vis[x]=1;
    19             if(link[x]==-1||dfs(link[x]))
    20             {
    21                 link[x]=t;
    22                 return 1;
    23             }
    24         }
    25     }
    26     return 0;
    27 }
    28 int main()
    29 {
    30     int i,a,b,c;
    31     while(~scanf("%d",&n)&&n)
    32     {
    33         scanf("%d%d",&m,&k);
    34         for(i=1;i<=n;i++) map[i].clear();
    35         for(i=0;i<k;i++)
    36         {
    37             scanf("%d%d%d",&a,&b,&c);
    38             if(b&&c) map[b].push_back(c);
    39         }
    40         memset(link,-1,sizeof(link));
    41         int ans=0;
    42         for(i=1;i<=n;i++)
    43         {
    44             memset(vis,0,sizeof(vis));
    45             if(dfs(i)) ans++;
    46         }
    47         printf("%d
    ",ans);
    48     }
    49 }
    我自倾杯,君且随意
  • 相关阅读:
    爬去搜狐新闻体育类
    python中创建迭代器
    python中smtp协议的运用
    人如何修炼才能增强精神力
    修炼精神力量
    Java进阶图谱
    提高做一件事的成功概率
    详细说servlet
    深圳买车上牌流程
    excel 散点图预测
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/5513623.html
Copyright © 2011-2022 走看看