zoukankan      html  css  js  c++  java
  • POJ 1422 Air Raid

    想了好几次,一直想不出来,没思路!

    今天看了解题报告,才知道是一个:最小路径覆盖数问题

    最小路径覆盖数=N-最大匹配数

    这个真还不知道!但是不知道为什???

    草了,这博客园这东西真傻比!!字体都调不过来!

    View Code
    #include <stdio.h>
    #include <string.h>

    #define M 7200
    #define N 122

    int nodev[N];
    int nodeu[M],next[M];

    void Build_Graph(int m)
    {
    int i,v,u,ind;

    memset(nodev,-1,sizeof(nodev)); ind=0;

    for(i=0;i<m;i++)
    {
    scanf("%d %d",&v,&u);

    nodeu[ind]=u;
    next[ind]=nodev[v];
    nodev[v]=ind;
    ind++;
    }
    }

    int pre[N];
    bool no[N];
    bool find(int v)
    {
    int i,u;
    for(i=nodev[v];i!=-1;i=next[i])
    {
    u=nodeu[i];
    if(!no[u])
    {
    if(pre[u]==-1 || (no[u]=true,find(pre[u])))
    {
    pre[u]=v;
    return true;
    }
    }
    }
    return false;
    }
    int solve(int n)
    {
    int v,cnt=0;

    memset(pre,-1,sizeof(pre));
    for(v=1;v<=n;v++)
    {
    memset(no,false,sizeof(no));
    if(find(v)) cnt++;
    }
    return n-cnt;
    }

    int main()
    {
    int t,n,m;
    scanf("%d",&t);
    while(t--)
    {
    scanf("%d %d",&n,&m);

    Build_Graph(m);
    printf("%d\n",solve(n));
    }
    return 0;
    }

    知道这个公式了,是简单啊!

    那要是不知道呢?还简单不?

  • 相关阅读:
    今天还要去一次北仑
    重归漫漫长路
    双休日,累
    调整心情,迎接新的挑战
    多喝点水,对身体有好处
    丈人生病住院了
    WPF,DataGrid数据绑定
    AXIS2简介
    心事一件件的了掉,希望一切都能恢复到正常
    驾车是种乐趣,也是种累
  • 原文地址:https://www.cnblogs.com/fornever/p/2226626.html
Copyright © 2011-2022 走看看