zoukankan      html  css  js  c++  java
  • hdoj 4160 Dolls

    http://acm.hdu.edu.cn/showproblem.php?pid=4160

    转化为二分图的最小路径覆盖问题。

    那么答案就是n-最大匹配数

    View Code
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<stdio.h>
    #include<vector>
    #define maxn 10000
    using namespace std;
    int n;
    struct node0
    {
        int h,w,l;
    }node[maxn];
    vector<int>point[maxn];
    int visit[maxn];
    int mm[maxn];
    void init()
    {
          for(int i=0;i<=2*n;i++)
          point[i].clear();
          for(int i=0;i<n;i++)
              cin>>node[i].w>>node[i].l>>node[i].h;
    }
    int check(int a,int b)
    {
         if(node[a].w<node[b].w&&node[a].h<node[b].h&&node[a].l<node[b].l)
             return 1;
         return 0;
    }
    void build()
    {
         for(int i=0;i<n;i++)//经典连边,分成i与i‘点
             for(int j=0;j<n;j++)
      if(check(i,j))point[i].push_back(j);//能够放下,连边
    }
    int dfs(int fa)
    {
          for(int i=0;i<point[fa].size();i++)//对于每一个连的点
          {
              if(!visit[point[fa][i]])//如果还没访问
              {
    
               visit[point[fa][i]]=1;
     if(mm[point[fa][i]]==-1||dfs(mm[point[fa][i]]))//在没访问的前提  //下,如果改点还没匹配,或者他的父亲有还没匹配的点
              {
                  mm[point[fa][i]]=fa;
                  return 1;
              }
              }
          }
          return 0;
    }
    void solve()
    {
          int cnt=0;
          memset(mm,-1,sizeof(mm));//初始化都不在匹配图中
          for(int i=0;i<n;i++)
          {
       memset(visit,0,sizeof(visit));//每一次深搜初始化,都没有访问过
              if(dfs(i))cnt++;//dfs找增广路
          }
          cout<<n-cnt<<endl;
    }
    int main()
    {
          while((cin>>n)&&n)
          {
            init();
            build();
            solve();
          }
          return 0;
    }
  • 相关阅读:
    tr加不上边框
    placeholder 用法
    <input/>文本输入框效果:
    colspan="2"、列、rowspan="3"、行、用法!
    CSS--实现小三角形
    “div+css”下拉菜单
    HDU4624 Endless Spin(概率&&dp)
    chanme的博客搬家了!
    HDU5487 Difference of Languages(BFS)
    HDU5469 Antonidas(树分治&&哈希)
  • 原文地址:https://www.cnblogs.com/cs1003/p/2660786.html
Copyright © 2011-2022 走看看