网络流

首先算出每行每列的数的和。

每行的值减去c,每列的值减去R

然后每行和每列之间连边,容量为19.

这样一来,(i,j)的流量相当于(i,j)的值-1.

这样就避免了流量为0不对应答案的尴尬情况。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 1000 + 10;
const int maxm = 100000 + 10;
const int inf = 0x3f3f3f3f; int g[maxn],v[maxm],nex[maxm],f[maxm],eid;
int gap[maxn],d[maxn],vid;
int n,m,S,T;
int a[maxn],b[maxn];
int res[maxn][maxn]; void addedge(int a,int b,int F) {
v[eid]=b; f[eid]=F; nex[eid]=g[a]; g[a]=eid++;
v[eid]=a; f[eid]=0; nex[eid]=g[b]; g[b]=eid++;
} void build() {
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=n;i>=1;i--) a[i]-=a[i-1];
for(int i=n+1;i<=n+m;i++) scanf("%d",&b[i]);
for(int i=n+m;i>=n+1;i--) b[i]-=b[i-1];
memset(g,-1,sizeof(g)); eid=0;
S=n+m+1; T=n+m+2; vid=n+m+2;
for(int i=1;i<=n;i++) {
addedge(S,i,a[i]-m);
}
for(int i=n+1;i<=n+m;i++) {
addedge(i,T,b[i]-n);
}
for(int i=1;i<=n;i++)
for(int j=n+1;j<=n+m;j++) {
addedge(i,j,19);
}
} int ISAP(int u,int flow) {
if(u==T) return flow;
int cur=0,aug,mindist=vid; for(int i=g[u];~i;i=nex[i]) if(f[i] && d[u]==d[v[i]]+1) {
aug=ISAP(v[i],min(flow-cur,f[i]));
cur+=aug;
f[i]-=aug;
f[i^1]+=aug;
if(cur==flow || d[S]>=vid) return cur;
} if(cur==0) {
if(!--gap[d[u]]) {
d[S]=vid;
return cur;
}
for(int i=g[u];~i;i=nex[i]) if(f[i])
mindist=min(mindist,d[v[i]]);
++gap[d[u]=mindist+1];
}
return cur;
} void solve() {
memset(d,0,sizeof(d));
memset(gap,0,sizeof(gap));
gap[0]=vid;
while(d[S]<vid) { ISAP(S,inf);
}
for(int u=1;u<=n;u++) {
for(int i=g[u];~i;i=nex[i]) res[u][v[i]]=20-f[i];
}
for(int i=1;i<=n;i++) {
for(int j=n+1;j<n+m;j++)
printf("%d ",res[i][j]);
printf("%d\n",res[i][n+m]);
}
} int main() {
int T;
scanf("%d",&T);
for(int i=1;i<=T;i++) {
if(i>1) printf("\n");
printf("Matrix %d\n",i);
build();
solve();
}
return 0;
}

uva11082 Matrix Decompressing的更多相关文章

  1. UVA11082 Matrix Decompressing 最大流建模解矩阵,经典

    /** 题目:UVA11082 Matrix Decompressing 链接:https://vjudge.net/problem/UVA-11082 题意:lrj入门经典P374 已知一个矩阵的行 ...

  2. UVA-11082 Matrix Decompressing(有上下界的最大流)

    题目链接: Matrix Decompressing 题意: 给一个矩阵的每行和每列的和,(给的是前i行或者列的和); 矩阵中每个元素的值在1到20之间,找出这样的一个矩阵: 思路: 把它转化成一个二 ...

  3. UVa11082 Matrix Decompressing(最小费用最大流)

    题目大概有一个n*m的矩阵,已知各行所有数的和的前缀和和各列所有数的和的前缀和,且矩阵各个数都在1到20的范围内,求该矩阵的一个可能的情况. POJ2396的弱化版本吧..建图的关键在于: 把行.列看 ...

  4. UVA-11082 Matrix Decompressing (网络流建模)

    题目大意:给出一个由1到20组成的整数矩阵的每一行和每一列的和,构造这个矩阵.输出任意一个构造方案. 题目分析:将每一行视作一个点x,将每一列视作一个点y.对于矩阵中的每一个格子,都对应一个二元关系& ...

  5. UVa 11082 Matrix Decompressing(最大流)

    不想吐槽了..sample input 和sample output 完全对不上...调了一个晚上...不想说什么了... -------------------------------------- ...

  6. uva Matrix Decompressing (行列模型)

    Matrix Decompressing 题目:    给出一个矩阵的前i行,前j列的和.要求你求出满足的矩阵. 矩阵的数范围在[1,20].   一開始就坑在了这里.没读细致题目. 囧...   事 ...

  7. UVA - 11082 Matrix Decompressing

    2. B - Matrix Decompressing 题意:定义一个R*C的正整数矩阵(1<=R,C<=20),设Ai为前i行所有元素之和,Bi为前i列所有元素之和. 题目已知R,C和数 ...

  8. 【UVA11082】Matrix Decompressing(有上下界的网络流)

    题意:给出一个矩阵前i列所有元素的和,和前j行所有元素的和,求这个矩阵解压以后的原型.(答案不唯一) n,m<=20,1<=a[i,j]<=20 思路:这道题把边上的流量作为原先矩阵 ...

  9. UVA11082:Matrix Decompressing

    题意:给定一个矩阵的前i行的和,以及前i列的和,求任意一个满足条件的矩阵,矩阵元素在[1,20] 矩阵行列<=20 题解:做一个二分图的模型,把行列拆开,然后设源点到行节点的容量就是该行所有元素 ...

随机推荐

  1. window2003安全设置

    1.    网上邻居->右键 属性->本地连接 右键属性->Microsoft网络的文件和打印机共享去掉选中   (影响端口: 139,445) 2.    禁止ADMIN$缺省共享 ...

  2. 用pycharm开发django项目示例

    pycharm开发django工程(一)  在pycharm(企业版)中新建Django工程,注意使用虚拟环境 创建成功后,在pycharm显示的工程目录结构如下: 打开pycharm的Termina ...

  3. Linux多进行之fork

    #include <unistd.h> //定义该函数 #include <sys/types.h> //定义函数的返回类型pid_t /* 功能:复制进程 参数:无 返回值: ...

  4. (转)Qt Model/View 学习笔记 (四)——创建新的Models

    创建新的Models 介绍 model/view组件之间功能的分离,允许创建model利用现成的views.这也可以使用标准的功能 图形用户接口组件像QListView,QTableView和QTre ...

  5. go语言使用protobuf

    网上为什么充斥着大量几乎一模一样而且不正确的教程??? 妈的打开一个关于golang和protobuf的教程,无非都是protobuf多么多么牛逼,xml多么多么傻逼,然后就是怎么安装protobuf ...

  6. linux驱动系列之调试环境搭建一

    2014年刚开始学习linux时,搭建环境花了很多时间.当时最熟悉的是单片机如Mag16和stm32,依据以往学习单片机的经验肯定要用下载器下载程序,但是我找了很久没有比较好的IDE,不像Mag16有 ...

  7. 自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选&多选下拉框

    先说点闲话,熟悉Angular的猿们会喜欢这个插件的. 00.本末倒置 不得不承认我是一个喜欢本末倒置的人,学生时代就喜欢先把晚交的作业先做,留着马上就要交的作业不做,然后慢悠悠做完不重要的作业,卧槽 ...

  8. Shiro 缓存失效以后的一个问题

    shiro 1.2.2和1.2.3 为shiro设置了缓存,但是当服务器运行几个小时后,页面判断 <shiro:hasPermission name="admin"> ...

  9. mysql可以运行在不同sql mode模式下面,sql mode模式定义了mysql应该支持的sql语法,数据校验等

    查看默认的sql mode模式:select @@sql_mode;我的数据库是:STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUT ...

  10. 建立Clojure开发环境-使用IDEA和Leiningen

    OS: Mac OS X 10.10 IDEA 14.0.2 Community Edition 安装Leiningen 按照http://leiningen.org/的指南安装lein 阅读Lein ...