题意:略

各点向原信念连INF+1的边,不同信念连INF的边,这样割原信念花费大一点。然后好友连1的边。最小割的结果-n*INF就是答案,因为割到哪边最少都要INF。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
#include <stack>
#include <bitset>
#define mkp make_pair
using namespace std;
const double EPS=1e-;
typedef long long lon;
const lon SZ=,SSZ=,APB=,one=,INF=0x7FFFFFFF,mod=;
int n,m,S=,T=,dep[SZ];
int mp[SZ][SZ]; void add(int u,int v,int w)
{
mp[u][v]=w;
} void init()
{
for(int i=;i<=n;++i)
{
int tmp;
cin>>tmp;
if(!tmp)
{
add(S,i,APB+);
add(i,S,);
add(i,T,APB);
add(T,i,);
}
else
{
add(S,i,APB);
add(i,S,);
add(i,T,APB+);
add(T,i,);
}
}
for(int i=;i<=m;++i)
{
int a,b;
cin>>a>>b;
add(a,b,);
add(b,a,);
}
} bool bfs()
{
memset(dep,,sizeof(dep));
dep[S]=;
queue<int> q;
q.push(S);
for(;q.size();)
{
int fr=q.front();
q.pop();
for(int i=;i<=T;++i)
{
if(!dep[i]&&mp[fr][i])
{
dep[i]=dep[fr]+;
q.push(i);
if(i==T)return ;
}
}
}
return ;
} int dinic(int x,int flow)
{
if(x==T)return flow;
else
{
int rem=flow;
for(int i=;i<=T&&rem;++i)
{
if(dep[i]==dep[x]+&&mp[x][i])
{
int tmp=dinic(i,min(rem,mp[x][i]));
if(!tmp)dep[i]=;
rem-=tmp;
mp[x][i]-=tmp,mp[i][x]+=tmp;
}
}
return flow-rem;
}
} void work()
{
int res=;
for(;bfs();)res+=dinic(S,INF);
cout<<res-n*APB<<endl;
} void release()
{
memset(mp,,sizeof(mp));
} int main()
{
std::ios::sync_with_stdio();
//freopen("d:\\1.txt","r",stdin);
//cout<<(1<<31)<<endl;
int casenum;
//cin>>casenum;
//cout<<casenum<<endl;
//for(int time=1;time<=casenum;++time)
for(int time=;cin>>n>>m,n;++time)
{
init();
work();
release();
}
return ;
}

hdoj3138的更多相关文章

随机推荐

  1. phpstorm----------phpstorm设置自动更新的ssh信息如何修改--后续增加如何设置自动更新

    1.如何设置phpstorm将本地代码时时同步到远程服务器 注意下面一定要打勾 点击下一步,然后还有一个页面,然后不用做任何操作,直接点击完成.中途有个页面是输入远程服务器ip账号密码链接方式的,那个 ...

  2. lumen----------A facade root has not been set.

    1.新拉下来的lumen源码,直接使用Log::info是不行的.汇报如下图错误 解决办法如下图,因为lumen需要设置一些开关

  3. 201903<<高效15法则>>

    高效15法则,这本书作为时间管理的入门书籍,易读易理解,结构清晰,但是中间的某些篇幅内容过于拖沓....

  4. C# 实现http不同方法的请求

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  5. 制作Win10 U盘版移动便携系统

    制作U盘Win10 灌装WIM VHD_OneKey_beta2 把wim导入VHD文件 复制 WIN8USB.VHD boot bootmgr三个文件到U盘 把制作的Win10的VHD文件重命名为 ...

  6. CLASS 类 __getattr__

    class Chain(object): def __init__(self, path=''): self._path = path def __getattr__(self, path): ret ...

  7. python交互的几种方式

    # 第一种交互方式 name = input("name:")age = input("age:")job = input("job:")s ...

  8. 对oracle数据库的数据迁移

    导入:expdp 用户名/密码@ip/实例名 DUMPFILE=dump.dump EXCLUDE=TABLE:\"IN (\'表1\',\'表2\')\" 导出:impdp 用户 ...

  9. 20190411RAID磁盘阵列及CentOS7系统启动流程

    RAID磁盘阵列及CentOS7系统启动流程(week2_day3)   RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构 ...

  10. %zsy %lqs 随感

    今天是cj的大毒瘤zsy(对对,您说的都对,题目不难的啦,是我太菜啦)出题. 我校选手lqs仍然坚持高水平的发挥,wzy神犇却不在状态. 面对T1sb题(其实干了2h)和T3的原题(我&lqs ...