[bzoj2127]happiness

来自FallDream的博客,未经允许,请勿转载,谢谢。


高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值。作为计算机竞赛教练的scp大老板,想知道如何分配可以使得全班的喜悦值总和最大。  n,m<=100

文理分科的模型题....

对于每一个点,假如割到S表示选理科,割到T表示选文科,这两条边的边权显然,然后对于每一个特殊的条件,建立一个新点。如果表示都选文科获得的喜悦值,那么从S向他连边,边权是喜悦值,然后它向那两个点连边,边权设成INF。理科同理。

最后最小割。

然后去网上搜了搜发现了牛逼做法,对边权进行变换使得不用建出新点,效率变高。有兴趣可以自己看看。

#include<iostream>
#include<cstdio>
#include<cstring>
#define INF 2000000000
#define S 0
#define T 50000
#define num(x,y) ((x-1)*m+y)
using namespace std;
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f;
}int cnt=1,head[T+5],c[T+5],n,m,d[T+5],q[T+5],top=0,id;
unsigned int ans=0;
struct edge{int to,next,w;}e[T*10];inline void ins(int f,int t,int w)
{e[++cnt]=(edge){t,head[f],w};head[f]=cnt;e[++cnt]=(edge){f,head[t],0};head[t]=cnt;
}bool bfs()
{memset(d,0,sizeof(d));int i,j;for(d[q[top=i=1]=S]=1;i<=top;i++)for(int j=c[q[i]]=head[q[i]];j;j=e[j].next)if(e[j].w&&!d[e[j].to])d[q[++top]=e[j].to]=d[q[i]]+1;return d[T];
}int dfs(int x,int f)
{if(x==T)return f;int used=0;for(int&i=c[x];i;i=e[i].next)if(e[i].w&&d[e[i].to]==d[x]+1){int w=dfs(e[i].to,min(e[i].w,f-used));used+=w;e[i].w-=w;e[i^1].w+=w;if(used==f)return f;}return d[x]=-1,used;
}int main()
{n=read();m=read();id=num(n,m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){int x=read();ans+=x;ins(S,num(i,j),x);}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){int x=read();ans+=x;ins(num(i,j),T,x);}for(int i=1;i<n;i++)for(int j=1;j<=m;j++){int x=read();ans+=x;ins(S,++id,x);ins(id,num(i,j),INF);ins(id,num(i+1,j),INF);}for(int i=1;i<n;i++)for(int j=1;j<=m;j++){int x=read();ans+=x;ins(++id,T,x);ins(num(i,j),id,INF);ins(num(i+1,j),id,INF);}for(int i=1;i<=n;i++)for(int j=1;j<m;j++){int x=read();ans+=x;ins(S,++id,x);ins(id,num(i,j),INF);ins(id,num(i,j+1),INF);}for(int i=1;i<=n;i++)for(int j=1;j<m;j++){int x=read();ans+=x;ins(++id,T,x);ins(num(i,j),id,INF);ins(num(i,j+1),id,INF);}while(bfs()) ans-=dfs(S,INF);printf("%u\n",ans);return 0;
}

 

转载于:https://www.cnblogs.com/FallDream/p/bzoj2127.html

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

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

相关文章

python错误代码翻译查询_完成自动查找翻译单词的python源代码

下面这段代码需要完成的是关于完成自动查找翻译单词的python源代码&#xff0c;找到目标单词在网上词典完成翻译的过程。 #!/usr/bin/python #codingutf-8 import urllib import sys #import xml.dom.minidom import re #是否输出例句 egTrue def main(): if len(sys.argv) 2:…

mysql sql实现原理_Mysql的数据库原理

首先要了解原理。不得不说说。mysql的执行流程。Mysql是一个单进程的服务&#xff0c;对于每一个请求都是用线程来相应的。这就需要一个连接器来处理新用户的请求、相应&#xff0c;以及销毁。1.客户端请求&#xff0c;服务端(连接器)开辟线程相应用户2.用户发起SQL语句查询数据…

Jürgen Schmidhuber眼中的深度学习十年,以及下一个十年展望

大数据文摘出品来源&#xff1a;Medium作者&#xff1a;Jrgen Schmidhuber编译&#xff1a;张秋玥、马莉2020年是充满科幻的一年&#xff0c;曾经我们畅想飞行汽车、智能洗碗机器人以及能自动写代码的程序&#xff0c;然而这一切都没有发生。2020迎接我们的是澳洲大火、新冠病毒…

AC日记——数据流中的算法 51nod 1785

数据流中的算法 思路&#xff1a; 线段树模拟&#xff1b; 时间刚刚卡在边界上&#xff0c;有时超时一个点&#xff0c;有时能过&#xff1b; 来&#xff0c;上代码&#xff1a; #include <cstdio> #include <cstring> #include <iostream> #include <alg…

docker pidfile_Zabbix5监控Docker

zabbix_agent配置Zabbix 监控Docker 时 agent 需要使用 zabbix_agent2&#xff0c;而不是zabbix_agent主要模式时配置如下&#xff1a;[rootlocalhost#] cat /etc/zabbix/zabbix_agent2.conf |grep -v ^#|grep -v ^$ PidFile/var/run/zabbix/zabbix_agent2.pidLogFile/var/log…

6种java垃圾回收算法_被说烂了的Java垃圾回收算法,我带来了最“清新脱俗”的详细图解...

一、概况理解Java虚拟机垃圾回收机制的底层原理&#xff0c;是系统调优与线上问题排查的基础&#xff0c;也是一个高级Java程序员的基本功&#xff0c;本文就针对Java垃圾回收这一主题做一些整理与记录。Java垃圾回收器的种类繁多&#xff0c;它们的设计要在吞吐量(内存空间)与…

Gartner:2020 年 AI 平台魔力象限:意外多多

来源&#xff1a;云头条众多企业决策者向市场研究公司Gartner寻求企业软件堆栈方面的建议。魔力象限报告是Gartner发布的最可信、最真实、最权威的研究报告之一。由于它影响企业的采购决策&#xff0c;因此诸多供应商竭力想在报告中占有一席之地。Gartner最近发布了数据科学和机…

CentOS6.9编译安装LNMP环境

CentOS6.9编译安装LNMP环境 今天尝试一下用编译的方式来搭建lnmp运行环境。所有软件都采用当前最新版本&#xff0c;除了CentOS。这是由于目前企业大多数应该都还在使用CentOS6的缘故&#xff0c;并且CentOS7目前还在迭代中。虽说不会有大的改动&#xff0c;但也算不上完全稳定…

python实现号码簿_使用Python进行号码簿的格式转换

今天碰到一个问题&#xff0c;如何将功能机的号码簿转换到智能机中。但是 这款BBK手机没有对应的电脑端软件&#xff0c;所以备份号码簿并不方便。我的解决方案是将功能机的电话簿导出成.csv格式的文件。导出的格式如下&#xff1a; --------------- 姓名&#xff0c;电话&…

生物,AI,心理:目前的大脑/认知/意识/AGI/DRL模型

来源&#xff1a;人工智能前沿讲习一 基于生物和经验的模型首先是 2012 年的 Spaun&#xff0c;基于生物基础&#xff08;脑图谱&#xff09;&#xff0c;类生物神经元&#xff08;尖峰放电 SNN&#xff09;。在训练后可完成多种识别和生成和反应任务。map the visual hierar…

java 使用nullable_Java Stream ofNullable(T)用法及代码示例

如果此流不为null&#xff0c;则ofNullable(T)方法将返回包含单个元素的顺序Stream&#xff0c;否则该方法将返回空Stream。它有助于处理空流和NullPointerException。用法:static Stream ofNullable(T t)参数&#xff1a;此方法接受单个参数t&#xff0c;该参数t是要返回其Str…

阿里云SLB负载均衡与使用SSL域名证书

阿里云SLB负载均衡与使用SSL证书 1.购买两台ECS服务器&#xff0c;这就是后台服务器&#xff0c;在这两个服务器上面部署你的网站&#xff0c;注意网站的端口要一样&#xff1b;比如都是 88。 2.在阿里云控制台的菜单里找到 负载均衡&#xff0c;创建一个SLB&#xff0c;把这两…

python数据标注工具_数据标注工具大全汇总,有了这些工具再也不用自己开发了...

数据标注工具大全汇总&#xff0c;有了这些工具再也不用自己开发了。 做数据标注三年了&#xff0c;总是遇到各种各样的需求&#xff0c;总是想找一款最高效&#xff0c;最快速&#xff0c;最好用的标注工具&#xff0c;最重要的是免费&#xff0c;经过三年的收集&#xff0c;大…

java 数据类型 string_java的基本数据类型和引用数据类型都有哪些,string属于什么类型...

基本数据类型有四类八种:第一类:逻辑型booleanboolean类型只允许取值true或者false,不可以为0或者非0的整数代替true和false,这点和C语言不同.第二类:文本型char字符常量为用单引号括起来的单个字符,例如: char ch1 a; char ch2 中;第三类:整数型(byte,short,int,long)byte…

决策智能(Decision Intelligence)二三事

来源&#xff1a;https://www.zhihu.com/people/wang-jing-28-89-94什么是决策智能&#xff1f;大家看到这四个字&#xff0c;大多数人心里的发问会是”什么是决策智能“呢&#xff1f;别说你没想&#xff0c;别骗我了。那么什么是决策智能呢&#xff1f;以下是维基的定义&…

python基础——面向对象的程序设计

python基础——面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程&#xff0c;过程即解决问题的步骤&#xff0c;面向过程的设计就好比精心设计好一条流水线&#xff0c;考虑周全什么时候处理什么东西。 优点是&#xff1a;极大的降低了程序的复杂…

移动端 h5如何生成快捷方式_削微整理了几个经常在H5移动端开发遇到的东西

不用说我也知道&#xff0c;此类文章太多太多了&#xff0c;常见的譬如&#xff1a;viewport、强制浏览器全屏、IOS的Web APP模式、可点击元素出现阴影&#xff08;这个我觉得真没必要去掉&#xff0c;用户点击是需要反馈的&#xff0c;而这个背景色刚刚好提供了一种反馈&#…

SCI至上只是结果,而不是原因

来源&#xff1a;赵斌科学网博客我从来不认为SCI一无是处&#xff0c;相反&#xff0c;我们大多数科研人员应该感谢它。中国科研评价体系中的的问题&#xff0c;不是破四唯&#xff0c;破SCI至上&#xff0c;而是打破特权、消除歧视。近日&#xff0c;教育部和科技部联合发文&a…

spark mysql 交互_Spark - 直接操作数据源 MySQL

如果我们的Mysql服务器性能不咋滴&#xff0c;但是硬盘很够&#xff0c;如何才能做各种复杂的聚合操作&#xff1f;答案就是使用spark的计算能力的&#xff0c;我们可以将mysql数据源接入到spark中。读取val mysqlDF spark.read.format("jdbc").option("driver…