SP1693 COCONUTS - 题解

SP1693 COCONUTS
题意:
几个士兵在投票,有支持与反对两种选择,每个人有自己的看法,但是他们有时也会为了支持朋友的看法而放弃自己的看法,请求出一种方案,使得违背自己初始看法的人数与看法不一致的朋友对数之和最小,人数不大于300。

做法:
这是一道网络流的题目。是源点s代表支持,汇点t代表反对,最小割即所有人决策的最小代价之和。如果一个人支持,则t向他连边,反之他向s连边。如果有一对朋友,那他们互相连边(所有边权为1)。然后跑最小割即可。

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a),i##ed=(b);i<=i##ed;i++)
#define per(i,a,b) for(int i=(a),i##ed=(b);i>=i##ed;i--)
using namespace std;
const int N=1010,M=2000010,INF=0x3f3f3f3f;
int s,t,n,m,sum;
int cnt,hed[N],to[M],nxt[M],val[M];
int cur[M],dis[M],g[M];inline void add(int x,int y,int z) { to[++cnt]=y,val[cnt]=z,nxt[cnt]=hed[x],hed[x]=cnt; }
inline int Min(int x,int y) { return x<y? x:y; }
int SAP(int u,int flow) {if(u==t) return flow; int v=flow;for(;cur[u];cur[u]=nxt[cur[u]])if(dis[to[cur[u]]]==dis[u]-1&&val[cur[u]]) {int f=SAP(to[cur[u]],Min(v,val[cur[u]]));val[cur[u]]-=f,val[cur[u]^1]+=f,v-=f;if(!v) return flow;}if(!--g[dis[u]++]) dis[s]=t-s+2;++g[dis[u]],cur[u]=hed[u]; return flow-v;
}
int main() {for(;;) {scanf("%d%d",&n,&m); if(!n&&!m) break;cnt=1,memset(hed,0,sizeof(hed)),s=0,t=n+1,sum=0;rep(i,1,n) {int x;scanf("%d",&x);x? (add(s,i,1),add(i,s,0)):(add(t,i,0),add(i,t,1));}rep(i,1,m) {int x,y;scanf("%d%d",&x,&y);add(x,y,1),add(y,x,0),add(y,x,1),add(x,y,0);}rep(i,s,t) cur[i]=hed[i],g[i]=0,dis[i]=0;for(g[0]=t-s+1;dis[s]<=t-s+1;sum+=SAP(s,INF));printf("%d\n",sum);}return 0;
}

转载于:https://www.cnblogs.com/daniel14311531/p/10458249.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最近特忙

昨天上午上课&#xff0c;中午开支部大会&#xff0c;下午学院职工会议&#xff0c;晚上去东联蛇餐馆吃蛇肉&#xff0c;回来后参加体验英语月闭幕式及英语合唱表演决赛。这中间我还出去给我的论文小组快了一个讨论会。昨天共开了三个会&#xff0c;真是忙得天昏地暗&#xff0…

NoSQL系列:选择合适的数据库

NoSQL系列&#xff1a;选择合适的数据库 为什么使用NoSQL数据库&#xff1f; 阻抗失衡 关系模型和内存中的数据结构不匹配 采用更为方便的数据交互方式提升开发效率 待处理的数据量很大 数据量超过关系型数据库的承载能力 大集群的出现 在成本方面&#xff0c;集群中应用关系数…

mysql历史日志文件_MySQL 历史 binlog 日志处理

MySQL 历史 binlog 日志处理一、问题的引出MySQL binlog 如果不清理会占用服务器的空间,那么怎么处理binlog日志呢二、解决办法1、物理删除df -Th 查看磁盘空间➜ bobbob-pc ~ df -Th文件系统 类型 容量 已用 可用 已用% 挂载点udev devtmpfs 7.8G 0 7.8G 0% /devtmpfs tmpfs 1…

史上最全搞怪WC标志(组图)--设计者太有才了。

转载于:https://www.cnblogs.com/onlyzq/archive/2007/12/22/1010318.html

1 vmware 如何联网,以及行命令令初步

VMware安装Linux&#xff08;我安装的是ubuntu&#xff09;&#xff0c;没法上网&#xff0c;上网教程见&#xff1a;https://blog.csdn.net/qq_28090573/article/details/78730552 安装完成Linux&#xff0c;进入系统&#xff0c;显示的是图形界面&#xff0c;但是学习Linux&a…

mysql几个timeout参数_MySQL中 timeout相关参数解析

前言&#xff1a;MySQL中有两个关于连接超时的配置项。他们之间在某些条件下会互相继承&#xff0c;那究竟这两个参数会在什么情况下起作用呢&#xff1f;本文将会通过一些测试实例来证明总结两者的相互关系。参数介绍&#xff1a;The number of seconds the server waits for …

XML操作类

publicclassXmlControl:Object { protectedstringstrXmlFile; protectedXmlDocument objXmlDoc newXmlDocument(); publicXmlControl(stringXmlFile, Boolean bOverWrite, stringsRoot) { try{ //如果覆盖模式&#xff…

shell脚本中if的相关参数

转自&#xff1a;http://blog.csdn.net/aaaaatiger/article/details/1713611[ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d FILE ] 如果 FILE 存在且是一个…

mysql设置端口_修改mysql端口以及出现的问题

为了提高服务器的安全性&#xff0c;本节课主要讲的是Linux下如何修改Mysql端口。支持Linux环境下大部分系统的修改&#xff0c;如Centos和Ubuntu等。一、编辑my.cnfvi /etc/my.cnf二、在[mysqld]下添加port3506三、重启mysql服务service mysqld restart这里我之前出现了一个…

[转]你打算如何提升自己?

一年一度的金九银十&#xff0c;对于职场人来说&#xff0c;人们比盼望过年过节还期待&#xff0c;过年过节只是得到更好的休息&#xff0c;而金九银十&#xff0c;如果机会适当&#xff0c;得到的是实实在在的提升&#xff0c;职位提升、薪酬提升。在物价和股票都上升的时候&a…

下载安装webstrom及激活

太久没在新电脑上安装websrtom&#xff0c;又有点忘了咋激活。 一、安装 1.直接在浏览器搜索webstrom&#xff0c;打开官网&#xff0c;直接点击download。如下图 2.打开安装包&#xff0c;开始安装&#xff0c;直接点击 next 3.选择安装路径&#xff08;安装在你想安装的位置&…

CentOS命令行安装配置KVM详细教程

系统为centos 6.4 64位 最小化安装 服务器为dell R720&#xff0c;所以网卡为em0&#xff0c;在vmware作为练习安装学习&#xff0c;同样可以&#xff0c;命令行不是为了显的牛B&#xff0c;而是不用考虑桌面兼容性和其他原因的影响一、查看是否支持虚拟化vmware开启方式虚拟化…

mysql addslashes_PHP函数addslashes和mysql_real_escape_string的区别

首先&#xff1a;不要使用mysql_escape_string&#xff0c;它已被弃用&#xff0c;请使用mysql_real_escape_string代替它。mysql_real_escape_string和addslashes的区别在于&#xff1a;区别一&#xff1a;addslashes不知道任何有关MySQL连接的字符集。如果你给所使用的MySQL连…

WebBrowser 控件 内存溢出 补丁 From Microsoft

在程序中用WebBrowser长时间不停访问不同页面会造成内存溢出&#xff0c;微软给出了补丁&#xff0c;但是似乎没有怎么测试。要获得补丁必须通过邮件申请&#xff0c;我申请了三次才凑够了XP&#xff0c;2003和Vista的补丁&#xff0c;给大家分享。不过微软说没有经过回归测试&…

C#中如何得到Graphics对象

2019独角兽企业重金招聘Python工程师标准>>> 利用Graphics对象&#xff0c;我们可以绘制理想的UI。这里首先介绍C#中如何得到Graphics对象。 /如何得到Graphics对象 1. Control.CreateGraphics();直接通过Control类的公开方法获取。可以是Form&#xff0c;基础控件&…

【Lucene4.8教程之中的一个】使用Lucene4.8进行索引及搜索的基本操作

版权声明&#xff1a;本文为博主原创文章。转载请注明来自http://blog.csdn.net/jediael_lu/ https://blog.csdn.net/jediael_lu/article/details/30035025 在Lucene对文本进行处理的过程中&#xff0c;能够大致分为三大部分&#xff1a; 1、索引文件&#xff1a;提取文档内容并…

mysql 5.5 创建用户_MySQL5.5以上版本添加用户

MySQL数据库在5.5以后的版本对添加用户的操作进行了改版&#xff0c;已经不能使用原有的添加语法操作。MySQL数据库5.6版本变更&#xff1a;在数据库用户这一块&#xff0c;为了数据安全&#xff0c;5.6版本不在允许root用户通过insert语句对user表进行添加用户如图报错语法貌似…

discuz!nt论坛搬迁后出错,提示:对象名 'dnt_templates' 无效

2007年10月30日 星期二 16:23对象名 dnt_templates 无效解决方法&#xff1a; --解决重装系统并还原论坛数据库后&#xff0c;数据库帐号不关联的问题。--注意请用sa帐号 进行如下操作--操作之前&#xff0c;确保当前SqlServer中存在和原来数据库所有者同名的帐号 Exec sp_conf…

linux和windows双系统互拷文件乱码问题

2019独角兽企业重金招聘Python工程师标准>>> 如果你需要在linux下面用到windows下的文件&#xff0c;拷贝上去后经常发现中文显示乱码。。原因是Windows中默认的文件格式是 GBK(gb2312)&#xff0c;而Linux一般都是UTF-8。比较繁琐的方法是在windows下用程序把内容转…

LOJ2195 旅行

LOJ2195 旅行 题目描述S 国有 N 个城市&#xff0c;编号从 1 到 N。城市间用 N-1 条双向道路连接&#xff0c;满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教&#xff0c;如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便&#xff0c;我们用不…