BZOJ 1324: Exca王者之剑
1324: Exca王者之剑
Description
Input
Output
Sample Input
1 2
2 1
Sample Output
——分割线——
这道题是一个最小割的模型。
代码:
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std; inline int remin(int a,int b){
if (a<b) return a;
return b;
}
const int inf=214748360; const int Maxm=100000;
struct EdgeNode{
int u;
int v;
int f;
int nxt;
EdgeNode(){}
EdgeNode(int a,int b,int c,int d){
u=a;
v=b;
f=c;
nxt=d;
}
};
int nume=1;
EdgeNode e[Maxm+5]; const int Maxn=10000;
int src,sink;
int g[Maxn+7]; inline void insertEdgeFunction(int u,int v,int f){
e[++nume]=EdgeNode(u,v,f,g[u]);
g[u]=nume;
}
inline void insert(int u,int v,int f){
insertEdgeFunction(u,v,f);
insertEdgeFunction(v,u,0);
} queue<int> que;
int dist[Maxn+5];
inline bool Bfs(){
while(!que.empty()) que.pop();
memset(dist,-1,sizeof(dist));
que.push(src);
dist[src]=0;
while(!que.empty()){
int point=que.front();
que.pop();
for(int i=g[point];i;i=e[i].nxt){
if (e[i].f!=0 && dist[e[i].v]==-1){
que.push(e[i].v);
dist[e[i].v]=dist[point]+1;
}
}
}
return dist[sink]!=-1;
} int Dfs(int p,int delta){
int ret=0;
if (p==sink){
return delta;
}else{
for (int i=g[p];i;i=e[i].nxt){
if (dist[e[i].v]==dist[p]+1 && e[i].f!=0){
int dret=Dfs(e[i].v,remin(e[i].f,delta));
//printf("%d\n",dret);
ret+=dret;
e[i].f-=dret;
e[i^1].f+=dret;
delta-=dret;
}
}
}
return ret;
} inline int Dinic(){
int ret=0;
while(Bfs()){
ret+=Dfs(src,inf);
}
return ret;
} int n,m;
int sum=0;
int map[105][105];
int hash[105][105];
int cnt=0;
int main(){
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
scanf("%d",&map[i][j]);
sum+=map[i][j];
hash[i][j]=++cnt;
}
}
src=0;
sink=cnt+1;
for(int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
if ((i+j+1)&1){
insert(src,hash[i][j],map[i][j]);
}else{
insert(hash[i][j],sink,map[i][j]);
}
if ((i+j+1)&1){
int dx[]={0,1,0,-1,0};
int dy[]={0,0,1,0,-1};
for (int k=1;k<=4;k++){
int x=i+dx[k],y=j+dy[k];
if (1<=x && x<=n && 1<=y && y<=m) insert(hash[i][j],hash[x][y],inf);
}
}
}
} printf("%d\n",sum-Dinic()); return 0;
}
BZOJ 1324: Exca王者之剑的更多相关文章
- bzoj 1324 Exca王者之剑(黑白染色,最小割)
[题意] 两相邻点不能同时选,选一个点集使得权值和最大. 出题人语文好... [思路] 将图进行黑白二染色,然后构建最小割模型. [代码] #include<set> #include&l ...
- BZOJ 1324 Exca 神剑 最小割
标题效果:鉴于加权值矩阵,带走一个地方的权利值之后,与其相邻的格儿童权利值变0.问多少可以取出到右值. 思维:Amber论文题目.不难建设,图着色.颜色从S连边,还有一种颜色向T连边.再把相邻的格子连 ...
- BZOJ 1324 Exca神剑 最小割
标题效果:给定一个n*m矩阵.所有的格宝石之子,人们可选择起始位置,后除去宝石的当前位置的周围消失,然后你就可以走两步,重复上述过程 easy发现格儿子把它周围格孩子不能拿 因此,党格访问问题 黑白染 ...
- 【BZOJ-1324】Exca王者之剑 最小割
1324: Exca王者之剑 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 483 Solved: 248[Submit][Status][Disc ...
- BZOJ1324: Exca王者之剑
1324: Exca王者之剑 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 256 Solved: 131[Submit][Status] Desc ...
- 【BZOJ】【1324】王者之剑
网络流/二分图最大点权独立集 Amber(胡伯涛)论文<最小割模型在信息学竞赛中的应用>中的例题…… 感觉这个好神啊,果然是一切皆为网络流……这转化太神奇了 /************** ...
- [bzoj1324]Exca王者之剑_最小割
Exca王者之剑 bzoj-1324 题目大意:题目链接. 注释:略. 想法: 最小割经典模型. 所有格子向源点连权值为格子权值的边. 将棋盘黑白染色后白点反转源汇. 如果两个格子相邻那么黑点向白点连 ...
- 【bzoj1324】Exca王者之剑(8-9 方格取数问题)
*题目描述: 在一个有m*n (m,n<=100)个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法, ...
- 【Richard 的刷(水)题记录】
大概想了想,还是有个记录比较好. 9/24 网络流一日游: 最大流:bzoj1711[Usaco2007 Open]Dining 拆点 BZOJ 3993 Sdoi2015 星际战争 二分 P.S.这 ...
随机推荐
- curl之post提交xml
直接上代码: /** * 以post方式提交xml到对应的接口url * * @param string $xml 需要post的xml数据 * @param string $url url * @p ...
- Jquery 方法大全
一.JQuery常用的方法 :(JQuery中90%都是方法,没有参数是获取,带参数是设置) $("#id").css('backgroundColor','blue'); .cs ...
- iOS NSMutableURLRequest 上传图片
- (void)postImage:(UIImage *)_image { //分界线的标识符 NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x&q ...
- JavaBean组件在JSP文档中的应用
Bean: package cn.donghaua.bean; public class StringBean { private String message = "No message ...
- C++中头文件(.h)和源文件(.cpp)都应该写些什么
头文件(.h): 写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等,但一般来说不写出具体的实现. 在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下): ...
- cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)
链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...
- Andy's First Dictionary
Description Andy, 8, has a dream - he wants to produce his very own dictionary. This is not an easy ...
- BZOJ 3224: Tyvj 1728 普通平衡树(BST)
treap,算是模板题了...我中间还一次交错题... -------------------------------------------------------------------- #in ...
- URL地址的编码和解码问题
编码:encodeURIComponent() 方法:把URI字符串采用 UTF-8编码格式转化成escape格式的字符串.与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字 ...
- mybatis日记配置Log4j
拷贝log4j-1.2.16.jar到项目lib下 方式一是在src下新建一个log4j.xml文件,其具体内容如下 <?xml version="1.0" encoding ...