zoukankan      html  css  js  c++  java
  • POJ 1466 Girls and Boys

    。。。。。。。。。。。

    啥也不想说,我只想骂出题人!!!

    能不能人性点!!!R尼玛,出题数据,那是随便随机的??你知道你浪费了多少人的时间??

    你知道你折磨了多少人的心神??

    经过被百般蹂躏,我知道了它的后台数据的某些一定是不对照的,比如2跟1有关系,1跟2关系并不一定给你写出了

    你题目很清楚的告诉读者:跟个人的有关系的人数!!你如果说1跟2搞,而2却不一定跟1搞,那总人数-匹配数/2也不对!

    尼玛的怎么让AC!!很明显必须是相互的!!

    尼玛你这样搞是会折寿的……

    算了,说点正事……

    这个是:求最大独立集

    最大独立集==N-最大匹配数(即最大覆盖点数)

    理解:除去有关系了,都是没关系的

    这个相对好理解一点,那俩关系哥都理解!

    这俩天做的题都是:求最大匹配数的(即find())算法!

    暑假美学二分图,这算是补上了!

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

    #define N 500
    #define M 125000

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

    /*
    int getNumfromStr(char *s)
    {
    int i=0,num=0;

    while(s[i]<'0'||s[i]>'9') i++;
    do
    {
    num=num*10+s[i]-'0';
    i++;
    }while(s[i]>='0'&&s[i]<='9');
    return num;
    }
    */

    void Build_Graph(int n)
    {
    int i,v,u,ind,num;
    // char s[10];
    memset(nodev,-1,sizeof(nodev)); ind=0;

    for(v=0;v<n;v++)
    {
    // scanf("%s",s); scanf("%s",s); num=getNumfromStr(s);
    scanf("%d: (%d)",&num,&num);
    for(i=0;i<num;i++)
    {
    scanf("%d",&u);
    // if(u>v)
    {
    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=0;v<n;v++)
    {
    memset(no,false,sizeof(no));
    if(find(v)) cnt++;
    }
    // return n-cnt;
    return n-cnt/2;

    }

    int main()
    {
    int n;

    // freopen("input.txt","r",stdin);
    while(scanf("%d",&n)!=EOF)
    {
    Build_Graph(n);
    printf("%d\n",solve(n));
    }

    return 0;
    }
  • 相关阅读:
    【动态规划】最长公共子序列与最长公共子串
    【图论】深入理解Dijsktra算法
    webSocket基本知识
    React的合成事件
    mobx的实现原理
    js自定义事件
    React16废弃的生命周期和新的生命周期
    正则表达式基本概念
    webpack异步加载文件的方式
    React.lazy懒加载组件
  • 原文地址:https://www.cnblogs.com/fornever/p/2227479.html
Copyright © 2011-2022 走看看