zoukankan      html  css  js  c++  java
  • 二分图匹配模板题

    2013-2014 ACM-ICPC, NEERC, Eastern Subregional Contest 

     1 /*************************************************************************
     2     > File Name: a.cpp
     3     > Author: QWX
     4     > Mail: 
     5     > Created Time: Fri 05 Oct 2018 06:37:54 AM PDT
     6  ************************************************************************/
     7 
     8 
     9 //{{{ #include
    10 #include<iostream>
    11 #include<cstdio>
    12 #include<algorithm>
    13 #include<vector>
    14 #include<cmath>
    15 #include<queue>
    16 #include<map>
    17 #include<set>
    18 #include<string>
    19 #include<cstring>
    20 #include<complex>
    21 #include<bits/stdc++.h>
    22 #define mp make_pair
    23 #define pb push_back
    24 #define first fi
    25 #define second se
    26 #define pw(x) (1ll << (x))
    27 #define sz(x) ((int)(x).size())
    28 #define all(x) (x).begin(),(x).end()
    29 #define rep(i,l,r) for(int i=(l);i<(r);i++)
    30 #define per(i,r,l) for(int i=(r);i>=(l);i--)
    31 #define FOR(i,l,r) for(int i=(l);i<=(r);i++)
    32 #define eps 1e-9
    33 #define pii pair<int,int>
    34 #define vi vector<int> 
    35 #define PIE acos(-1)
    36 #define cl(a,b) memset(a,b,sizeof(a))
    37 #define fastio ios::sync_with_stdio(false);cin.tie(0);
    38 #define lson l , mid , ls
    39 #define rson mid + 1 , r , rs
    40 #define ls (rt<<1)
    41 #define rs (ls|1)
    42 #define INF 0x3f3f3f3f
    43 #define LINF 0x3f3f3f3f3f3f3f3f
    44 #define ll long long
    45 #define ull unsigned long long
    46 #define dd(x) cout << #x << " = " << (x) << "," 
    47 #define de(x) cout << #x << " = " << (x) << "
    " 
    48 #define endl "
    "
    49 using namespace std;
    50 //}}}
    51 int n,a,b;
    52 const int N=507;
    53 vi g[N],v0,v1;
    54 
    55 namespace maxmatch
    56 {
    57     int link[N],vis[N];
    58     bool dfs(int c){
    59         for(auto t:g[c]){
    60             if(vis[t])continue;vis[t]=1;
    61             if(link[t]==-1||dfs(link[t]))return link[t]=c,1;
    62         }
    63         return 0;
    64     }
    65     int solve(int n,int m){
    66         cl(link,-1);
    67         int ret=0;
    68         rep(i,0,n){
    69             cl(vis,0);
    70             ret+=dfs(i);
    71         }
    72         return ret;
    73     }
    74 }
    75 
    76 int main()
    77 {
    78     cin>>a>>b>>n;
    79     int s0=0,s1=0;
    80     rep(i,0,n){
    81         int t,op;
    82         cin>>t>>op;
    83         if(op==0)s0++,v0.pb(t);
    84         else if(op==1)s1++,v1.pb(t);
    85     }
    86     rep(i,0,sz(v0))rep(j,0,sz(v1)){
    87         if(v1[j]-v0[i]>=a||(v1[j]-v0[i]<=b&&v1[j]-v0[i]>=0))
    88             g[i].pb(j);
    89     }
    90     int ans=maxmatch::solve(s0,s1);
    91 //    de(ans); 
    92     if(s0==s1&&ans==s0){
    93         puts("No reason");
    94         rep(i,0,sz(v0))cout<<v0[maxmatch::link[i]]<<" "<<v1[i]<<endl;
    95     }else puts("Liar");
    96     return 0;
    97 }
    View Code
  • 相关阅读:
    修改url地址参数
    jquery点击click事件和blur事件冲突如何解决
    js 小数点 取整数
    js正则表达式 验证手机号,email地址和邮政编码
    js轮播功能 标签自动切换 同页面多轮播js
    json 数组操作
    Jquery页面中添加键盘按键事件,如ESC事件
    记录一下。。。服务器 共享文件夹 模拟模拟 IIS 验证的帐户或用户
    vs2015 js 无智能提示解决办法
    解决poshytip 表单高度大于屏幕高端 显示问题
  • 原文地址:https://www.cnblogs.com/klaycf/p/9751641.html
Copyright © 2011-2022 走看看