【BZOJ-1324】Exca王者之剑 最小割
1324: Exca王者之剑
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 483 Solved: 248
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2
2 1
Sample Output
HINT
Source
2007Amber国家队论文
Solution
最小割裸模型
见棋盘直接黑白染色,偶数秒发生消失?那就偶数秒和奇数秒分开二分图建图即可
Code
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; 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; } #define maxm 1000010 #define maxn 10010 int n,m,tot; struct EdgeNode{int next,to,cap;}edge[maxm]; int head[maxn],cnt=1; void add(int u,int v,int w) {cnt++;edge[cnt].next=head[u]; head[u]=cnt; edge[cnt].cap=w; edge[cnt].to=v; } void insert(int u,int v,int w) {add(u,v,w); add(v,u,0);}int val[110][110];int dis[maxn],que[maxn<<1],cur[maxn],S,T; bool bfs() {for (int i=S; i<=T; i++) dis[i]=-1;que[0]=S; dis[S]=0; int he=0,ta=1;while (he<ta){int now=que[he++];for (int i=head[now]; i; i=edge[i].next)if (edge[i].cap && dis[edge[i].to]==-1)dis[edge[i].to]=dis[now]+1,que[ta++]=edge[i].to;}return dis[T]!=-1; } int dfs(int loc,int low) {if (loc==T) return low;int w,used=0;for (int i=cur[loc]; i; i=edge[i].next)if (edge[i].cap && dis[edge[i].to]==dis[loc]+1){w=dfs(edge[i].to,min(low-used,edge[i].cap));edge[i].cap-=w; edge[i^1].cap+=w;used+=w; if (edge[i].cap) cur[loc]=i;if (used==low) return low;}if (!used) dis[loc]=-1;return used; } #define inf 0x7fffffff int dinic() {int tmp=0;while (bfs()){for (int i=S; i<=T; i++) cur[i]=head[i];tmp+=dfs(S,inf);}return tmp; } int locate(int x,int y) {return (x-1)*m+y;} int main() {n=read(),m=read();for (int i=1; i<=n; i++)for (int j=1; j<=m; j++)val[i][j]=read(),tot+=val[i][j];S=0,T=n*m+1;for (int i=1; i<=n; i++)for (int j=1; j<=m; j++)if ((i+j)%2==1){insert(S,locate(i,j),val[i][j]);if (i+1<=n) insert(locate(i,j),locate(i+1,j),inf);if (i-1>=1) insert(locate(i,j),locate(i-1,j),inf);if (j+1<=m) insert(locate(i,j),locate(i,j+1),inf);if (j-1>=1) insert(locate(i,j),locate(i,j-1),inf);}else insert(locate(i,j),T,val[i][j]);int maxflow=dinic();printf("%d\n",tot-maxflow);return 0; }
微机课随随便便打着玩系列,被旁边同学摁了个数,然后第一遍还WA了...纸张
转载于:https://www.cnblogs.com/DaD3zZ-Beyonder/p/5502901.html
【BZOJ-1324】Exca王者之剑 最小割相关推荐
- BZOJ 1324: Exca王者之剑/BZOJ 1475: 方格取数 最大权独立集 最小割
1324: Exca王者之剑 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 618 Solved: 310 [Submit][Status][Di ...
- [BZOJ]1324: Exca王者之剑
题目大意:在一个N*M的网格之中,每个格子上都有一定价值的宝石,Amber可以任意选则一个起始点.并且Amber可以瞬间取走当前所在格子中的宝石,Amber每秒可以走一步,在偶数秒时他周围4格中的宝石 ...
- BZOJ 2039 人员雇佣 (最小割)
题面:BZOJ传送门 网络流的题真神仙= = 大致分为三种情况 选某个人$i$,收益减少$a_{i}$ 选了$i$选了$j$,收益增加$2e_{ij}$ 选了$i$不选$j$,收益减少$e_{ij}$ ...
- BZOJ.2521.[SHOI2010]最小生成树(最小割ISAP/Dinic)
题目链接 一条边不变其它边减少可以看做一条边增加其它边不变. 假设要加的边lab为(A->B,v),那么肯定是要使除这条边外,A->B的每条路径上的最小权值都\(>v\),这样在连通 ...
- bzoj 2007 [Noi2010]海拔——最小割转最短路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2007 一个点的高度一定不是0就是1.答案一定形如一个左上角的连通块全是0的点.一个右下角的连 ...
- BZOJ.3144.[HNOI2013]切糕(最小割)
题目链接 没有\(D\)的限制怎么做?"最小"我们可以想到最小割,把同一纵轴上的点串起来,分别连到S,T,最小割就是答案.(在这把点权放到前一条边上) 有限制,即如果要割点\(i\ ...
- 边与最小割(bzoj 1797: [Ahoi2009]Mincut 最小割)
1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2471 Solved: 1067 [Subm ...
- bzoj 3894: 文理分科 最小割
Description 文理分科是一件很纠结的事情!(虽然看到这个题目的人肯定都没有纠 结过) 小P所在的班级要进行文理分科.他的班级可以用一个n*m的矩阵进行 描述,每个格子代表一个同学的座位.每位 ...
- BZOJ 3894 文理分科 最小割
题目大意:给定一个m*n的矩阵,每个格子的人可以学文或者学理,学文和学理各有一个满意度,如果以某人为中心的十字内所有人都学文或者学理还会得到一个额外满意度,求最大满意度之和 令S集为学文,T集为学理 ...
- bzoj 1797: [Ahoi2009]Mincut 最小割 (网络流)
太神了直接看了hzwer的题解,有个新认识,一条路径上满流的一定是这条路径上所有边的最小值. typearr=recordtoward,next,cap,from:longint;end; const ...
最新文章
- 配置发布和禁用复制功能时提示 分发服务器未正确安装。
- python不能加密吗_为什么我不能解密我用pycrypto加密的内容?
- 周围剃光头顶留长发型_为什么很多秃头的人,宁愿周围留一圈头发,也不愿剃成光头?...
- ROS知识【13】:ubuntu下安装eclipse-CDT【非installor】
- JMeter初探三-代理录制
- 彻底理解正向代理和反向代理
- java 常量接口_java接口定义常量研究
- gis里创建要素面板怎么打开_周末技术流 | 基于GIS的地形可视化分析
- 重启手机出现机器人加一个叹号_印度科幻脑洞高能!《宝莱坞机器人2.0》内地定档...
- 2021-2025年中国一次性生物处理系统行业市场供需与战略研究报告
- DNS解析错误解决办法
- 用计算机画对称图形,CAD画对称图形快捷键
- 智能颈椎按摩仪的特点和功能
- Saliency Detection: A Spectral Residual Approach 阅读笔记
- 中序遍历 java_java二叉树中序遍历递归和非递归实现
- OR(odd ratios)
- 100多个经典常用的PHP功能插件大全实例演示和下载
- 目前福岛高水平辐射量可能由2号反应堆释放
- FreeMind打开提示This application requires Java Runtime Environment XX
- linux ioctl 设备只读,linux – lsattr:设备的不适当的ioctl在读取标志时