• JZOJ 5934. 列队


    Description

            Sylvia是一个热爱学习的女孩子。
            在平时的练习中,他总是能考到std以上的成绩,前段时间,他参加了一场练习赛,众所周知,机房是一个 的方阵。这天,他又打爆了std,感到十分无聊,便想要hack机房内同学的程序,他会挑选一整行或一整列的同学进行hack ( 而且每行每列只会hack一次 ),然而有些同学不是那么好惹,如果你hack了他两次,他会私下寻求解决,Sylvia十分害怕,只会hack他们一次。假设Sylvia的水平十分高超,每次hack都能成功,求他最 多能hack多少次?
     

    Input

       第一行两个数 表示机房的大小和不好惹的同学个数
      接下来x行,每行两个数 表示不好惹的同学坐标

    Output

    一个数表示最多hack多少次
     

    Sample Input

    2 1
    1 1

    Sample Output

    6
    
    样例说明
         他可以hack第一行、第二行、第二列一共6次
    做法:行列棋盘图为二分图经典模型,令行为左侧点,列为右 侧点,有同学的格子就在对应行列之间连一条边,那么问题:一共最 多取出多少行和列 就转化为 二分图上最大的最大独立集问题 最大独立集点数=总点数-最大匹配数 匈牙利算法即可
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #define N 8007
     5 using namespace std;
     6 struct edge{
     7     int to,next;
     8 }e[N];
     9 int n,m,tot,ls[N];
    10 int g[N],cnt,used[N];
    11 
    12 void add(int x,int y){
    13     e[++tot].to=y;
    14     e[tot].next=ls[x];
    15     ls[x]=tot;
    16 }
    17 
    18 void Init(){
    19     scanf("%d%d",&n,&m);
    20     for(int i=1;i<=m;i++){
    21         int x,y;
    22         scanf("%d%d",&x,&y);
    23         add(x,y+n);
    24         add(y+n,x);
    25     }
    26 }
    27 
    28 bool find(int x){
    29     for(int i=ls[x];i;i=e[i].next){
    30         int v=e[i].to;
    31         if (used[v]) continue;
    32         used[v]=1;
    33         if (g[v]==0||find(g[v])){
    34             g[v]=x;
    35             return 1;
    36         }
    37     }
    38     return 0;
    39 }
    40 
    41 void Work(){
    42     for(int i=1;i<=n;i++){
    43         memset(used,0,sizeof(used));
    44         if (find(i))    cnt++;
    45     }
    46 }
    47 
    48 int main(){
    49     freopen("phalanx.in","r",stdin);
    50     freopen("phalanx.out","w",stdout);
    51     Init();
    52     Work();
    53     printf("%d",cnt*n+(n-cnt)*2*n);
    54 }
    View Code
  • 相关阅读:
    “<”特殊符号写法
    js中,符合属性的js写法是讲下横杆去掉
    Windows 搭建WAMP+Mantis
    Windows server 2012 R2 服务器用户自动锁定
    对域用户设置为本地管理员权限
    windows 域控用户记住最后一次登录用户名
    redhat7.6 配置主从DNS
    redhat7.6 DNS配置正向解析
    redhat7.6 AIDE 系统文件完整性检查工具
    redhat7.6 httpd 匿名目录 目录加密 域名跳转
  • 原文地址:https://www.cnblogs.com/traveller-ly/p/9892444.html
Copyright © 2020-2023  润新知