码迷,mamicode.com
首页 > 其他好文 > 详细

JZOJ 5934. 列队

时间:2018-11-01 22:39:56      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:转化   content   技术分享   ring   问题:   alt   via   define   desc   

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

 

JZOJ 5934. 列队

标签:转化   content   技术分享   ring   问题:   alt   via   define   desc   

原文地址:https://www.cnblogs.com/traveller-ly/p/9892444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!