zoukankan      html  css  js  c++  java
  • POJ 1325(最小点覆盖)

    这个题,就不用说什么了吧,最裸的最小点覆盖。

    View Code
     1 #include <cstdlib>
     2 #include <cstdio>
     3 #include <cstring>
     4 #define M 1000000
     5 using namespace std;
     6 int head[M],next[M],to[M],linky[M],m,bk,n,cnt;
     7 bool vis[M];
     8 inline void add(int u,int v)
     9 {
    10     to[cnt]=v; next[cnt]=head[u]; head[u]=cnt++;
    11 }
    12 void read()
    13 {
    14     scanf("%d%d",&m,&bk);
    15     memset(head,-1,sizeof head);
    16     cnt=0;
    17     for(int i=1,a,b,c;i<=bk;i++)
    18     {
    19         scanf("%d%d%d",&a,&b,&c);
    20         if(b&&c) add(b,c);
    21     }
    22 }
    23 bool dfs(int u)
    24 {
    25     for(int i=head[u];~i;i=next[i])
    26         if(!vis[to[i]])
    27         {
    28             vis[to[i]]=true;
    29             if(linky[to[i]]==-1||dfs(linky[to[i]]))
    30             {
    31                 linky[to[i]]=u;
    32                 return true;
    33             }
    34         }
    35     return false;
    36 }
    37 void go()
    38 {
    39     int ans=0;
    40     memset(linky,-1,sizeof linky);
    41     for(int i=1;i<=n;i++)
    42     {
    43         memset(vis,0,sizeof vis);
    44         if(dfs(i)) ans++;
    45     }
    46     printf("%d\n",ans);
    47 }
    48 int main()
    49 {
    50     while(scanf("%d",&n),n)
    51     {
    52         read();
    53         go();
    54     }
    55     return 0;
    56 }
    没有人能阻止我前进的步伐,除了我自己!
  • 相关阅读:
    窗口生效函数UpdateData
    查找内容grep命令
    终止函数 atexit()
    根据名字杀死进程Killall
    修改系统时间为UTC时间
    转 proc文件
    NTP算法
    转载,网线的深刻理解
    js完成密码输入为空,和两次输入不一致
    CSS初步了解
  • 原文地址:https://www.cnblogs.com/proverbs/p/2661009.html
Copyright © 2011-2022 走看看