博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 2756
阅读量:6006 次
发布时间:2019-06-20

本文共 2117 字,大约阅读时间需要 7 分钟。

 

思路:

  二分讨论,网络流检验;

 

代码:

#include 
using namespace std;#define INF 1e16#define maxn 40005#define ll long longconst ll dx[5]={
0,-1,0,1,0};const ll dy[5]={
0,0,1,0,-1};ll ai[45][45],id[45][45],suma,sumb,cnta,cntb,que[maxn],Max,ans;ll deep[maxn],E[maxn],V[maxn],F[maxn],cnt,head[maxn],s,t,cntid;ll n,m;bool col[45][45];inline void in(ll &now){ char Cget=getchar();now=0; while(Cget>'9'||Cget<'0') Cget=getchar(); while(Cget>='0'&&Cget<='9') { now=now*10+Cget-'0'; Cget=getchar(); }}inline void edge_add(ll u,ll v,ll f){ E[++cnt]=head[u],V[cnt]=v,F[cnt]=f,head[u]=cnt; E[++cnt]=head[v],V[cnt]=u,F[cnt]=0,head[v]=cnt;}bool bfs(){ for(ll i=s;i<=t;i++) deep[i]=-1; deep[s]=0,que[0]=s;ll h=0,tail=1,now; while(h
0&&i+dx[e]<=n&&v+dy[e]>0&&v+dy[e]<=m) edge_add(id[i][v],id[i+dx[e]][v+dy[e]],INF); } else edge_add(id[i][v],t,x-ai[i][v]); ll res=0; while(bfs()) res+=flowing(s,INF); return res==(x*cnta-suma);}int main(){ freopen("data.txt","r",stdin); ll T;in(T); while(T--) { in(n),in(m),suma=0,sumb=0,cnta=0,cntb=0,cntid=0,Max=0; for(ll i=1;i<=n;i++) for(ll v=1;v<=m;v++) { in(ai[i][v]),col[i][v]=(i+v)%2; if(col[i][v]) suma+=ai[i][v],cnta++; else sumb+=ai[i][v],cntb++; id[i][v]=++cntid,Max=max(Max,ai[i][v]); } ans=-1,s=0,t=cntid+1; if(cnta!=cntb) { if((suma-sumb)%(cnta-cntb)==0) { ll x=(suma-sumb)/(cnta-cntb); if(x>=Max) if(check(x)) ans=x*cnta-suma; } } else { if(suma==sumb) { ll l=Max,r=INF,mid; while(l<=r) { mid=l+r>>1; if(check(mid)) r=mid-1,ans=mid; else l=mid+1; } if(ans!=-1) ans=ans*cnta-suma; } } printf("%lld\n",ans); } return 0;}

 

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/7326729.html

你可能感兴趣的文章
函数形参实参的理解
查看>>
python常用工具组件
查看>>
字符交换算法
查看>>
android 布局中 layout_gravity、gravity、orientation、layout_weight【转】
查看>>
35. Search Insert Position(python)
查看>>
爬虫基础 2.5 代理 原理
查看>>
ReLu(Rectified Linear Units)激活函数
查看>>
jQuery遮罩插件 jquery.blockUI.js
查看>>
ZeroMemory
查看>>
Partition List leetcode
查看>>
Java并发(基础知识)—— 创建、运行以及停止一个线程
查看>>
springboot启动时过滤不需要注入的类
查看>>
我用过的Linux命令--虚拟机和宿主机的网络连接方式
查看>>
Python--多线程
查看>>
马士兵java教程笔记4
查看>>
POJ-2253 Frogger(最短路)
查看>>
不上架App Store怎么安装到非越狱苹果手机使用
查看>>
java作业1
查看>>
PHP判断变量是否为整型
查看>>
MVC 之 EF延迟加载
查看>>