bzoj 2768: [JLOI2010]冠军调查

 1 #include<cstdio>
 2 #include<iostream>
 3 #define M  100000
 4 #include<cstring>
 5 using namespace std;
 6 int cnt=1,head[M],next[10*M],u[10*M],v[10*M],n,m,d[M],q[M],ans;
 7 void jia(int a1,int a2,int a3)
 8 {
 9     cnt++;
10     u[cnt]=a2;
11     v[cnt]=a3;
12     next[cnt]=head[a1];
13     head[a1]=cnt;
14     return;
15 }
16 bool bfs()
17 {
18     memset(d,0,sizeof(int)*(n+1));
19     int h=0,t=1;
20     q[1]=0;
21     d[0]=1;
22     for(;h<t;)
23       {
24         h++;
25         int p=q[h];
26         for(int i=head[p];i;i=next[i])
27           if(!d[u[i]]&&v[i])
28             {
29                 d[u[i]]=d[p]+1;
30                 if(d[n])
31                   return 1;
32                 t++;
33                 q[t]=u[i];
34             }
35       }
36     return 0;
37 }
38 int dinic(int s,int f)
39 {
40     if(s==n)
41       return f;
42     int rest=f;
43     for(int i=head[s];i&&rest;i=next[i])
44       if(v[i]&&d[u[i]]==d[s]+1)
45         {
46             int now=dinic(u[i],min(rest,v[i]));
47             if(!now)
48               d[u[i]]=0;
49             v[i]-=now;
50             v[i^1]+=now;
51             rest-=now;
52         }
53     return f-rest;
54 }
55 int main()
56 {
57     scanf("%d%d",&n,&m);
58     for(int i=1;i<=n;i++)
59       {
60         int a1;
61         scanf("%d",&a1);
62         if(a1)
63           {
64             jia(0,i,1);
65             jia(i,0,0);
66           }
67         else
68           {
69             jia(i,n+1,1);
70             jia(n+1,i,0);
71           }
72       }
73     for(int i=1;i<=m;i++)
74       {
75         int a1,a2;
76         scanf("%d%d",&a1,&a2);
77         jia(a1,a2,1);
78         jia(a2,a1,0);
79         jia(a2,a1,1);
80         jia(a1,a2,0);
81       }
82     n++;
83     for(;bfs();)
84       ans+=dinic(0,0x7fffffff);
85     printf("%d\n",ans);
86     return 0;
87 } 

最小割 同善意的投票。

时间: 2024-10-12 08:36:35

bzoj 2768: [JLOI2010]冠军调查的相关文章

2768: [JLOI2010]冠军调查( 最小割 )

最小割... 怎么乱搞都可以 -------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define rep( i, n ) for( int i = 0; i < n; ++i ) #define R

BZOJ-2768: [JLOI2010]冠军调查(超级裸的最小割)

2768: [JLOI2010]冠军调查 Time Limit: 10 Sec  Memory Limit: 128 MB Description 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教育学院进行了一次大规模的调查,调查的内容就是关于切尔西能否在今年问鼎欧洲冠军.新浪体育的记者从各个院系中一共抽取了n位同学作为参与者,大家齐聚一堂,各抒己见.每一位参与者都将发言,阐述自己的看法.参与者的心里都有一个看法,比如

BZOJ2768: [JLOI2010]冠军调查

2768: [JLOI2010]冠军调查 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 484  Solved: 332[Submit][Status] Description 一 年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教育学院进行了一次大规 模的调查,调查的内容就是关于切尔西能否在今年问鼎欧洲冠军.新浪体育的记者从各个院系中一共抽取了n位同学作为参与者,大家齐聚

[BZOJ2768][JLOI2010]冠军调查(最小割)

题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2768 分析: 如果一个点i认为是0,则连一条S->i,如果认为是1,则i->T 然后对于是朋友的两点i,j,连一条双向边i,j 然后跑最小割就行了 易得每个说违心话的点对最小割的贡献为1,是朋友的两点对最小割的贡献也是1

BZOJ1934:[SHOI2007]善意的投票 &amp; BZOJ2768:[JLOI2010]冠军调查——题解

https://www.lydsy.com/JudgeOnline/problem.php?id=1934 https://www.lydsy.com/JudgeOnline/problem.php?id=2768 幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以投和自己本来意愿相反的票.我们定义一次投票的冲突数为好朋友之间发生冲突的总数加上和所有和自己本来意愿发生冲

JLOI2010 冠军调查 最小割

var b,f:array[0..100000] of longint; s,t,i,j,n,m,x,y:longint; l,h:array[0..1000]of longint; a:array[0..1000,0..1000]of longint; procedure bfs; var i,head,tail,x,y:longint; begin fillchar(b,sizeof(b),0); fillchar(h,sizeof(h),$7f); h[t]:=0; head:=1; ta

【BZOJ】【2768】【JLOI2010】冠军调查

网络流/最小割 我不会告诉你这题跟 BZOJ 1934 是一模一样的……包括数据范围…… 1 /************************************************************** 2 Problem: 2768 3 User: Tunix 4 Language: C++ 5 Result: Accepted 6 Time:32 ms 7 Memory:4408 kb 8 ******************************************

bzoj 3528 [ZJOI2014] 星系调查 题解

[原题] 星系调查 [问题描述] 银河历59451年,在银河系有许许多多已被人类殖民的星系.如果想要在行 星系间往来,大家一般使用连接两个行星系的跳跃星门.  一个跳跃星门可以把 物质在它所连接的两个行星系中互相传送. 露露.花花和萱萱被银河系星际联盟调查局任命调查商业巨擘ZeusLeague+ 的不正当商业行为. 在银河系有N个已被ZeusLeague+成功打入市场的行星系,不妨标号为 1,2,...,N.而ZeusLeague+在这N个行星系之间还拥有自己的M个跳跃星门.使 用这些跳跃星门,

【bzoj2768 冠军调查】

题目描述: 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教育学院进行了一次大规模的调查,调查的内容就是关于切尔西能否在今年问鼎欧洲冠军.新浪体育的记者从各个院系中一共抽取了n位同学作为参与者,大家齐聚一堂,各抒己见.每一位参与者都将发言,阐述自己的看法.参与者的心里都有一个看法,比如FireDancer认为切尔西不可能夺冠,而WaterDancer认为切尔西一定问鼎.但是因为WaterDancer是FireDance