题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3996

转化题目给的条件

$$D = \sum_{i=1}^n \sum_{j=1}^n{A(i)A(j)B(i,j)} - \sum_{i=1}^n C(i)A(i)$$

网络流可解,如果要得到 $B(i,j)$ 的话必须选$i$物品和$j$物品然后,选择每一个物品都有其代价。

最大权闭合子图。

再流网络中割掉一条边就是舍弃一个$B(i,j)$

所以最小割即可。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue> #define N 1100010
#define INF 0x3f3f3f3f using namespace std; struct edge{
int x,to,cap;
}E[N<<]; int n,B[][],C[N],totE,g[N],S,T,h[N],tot;
queue<int> q;
bool v[N]; #define p E[i].x void ade(int x,int y,int cap){
E[++totE]=(edge){y,g[x],cap}; g[x]=totE;
E[++totE]=(edge){x,g[y],}; g[y]=totE;
} bool bfs(){
memset(v,,sizeof(v));
q.push(S); h[S]=; v[S]=;
while(!q.empty()){
int x=q.front(); q.pop();
for(int i=g[x];i;i=E[i].to)
if(E[i].cap&&!v[p]){
h[p]=h[x]+;
q.push(p); v[p]=;
}
}
return v[T];
} int dinic(int x,int flow){
if(x==T||!flow) return flow;
int f=;
for(int i=g[x];i&&flow;i=E[i].to)
if(h[p]==h[x]+&&E[i].cap){
int tmp=dinic(p,min(flow,E[i].cap));
E[i].cap-=tmp; E[i^].cap+=tmp;
f+=tmp; flow-=tmp;
}
if(!f) h[x]=-;
return f;
} int main(){
scanf("%d",&n);
for(int i=,j;i<=n;i++)
for(j=;j<=n;j++) scanf("%d",&B[i][j]);
for(int i=;i<=n;i++) scanf("%d",&C[i]);
S=n*n+n+; T=S+;
for(int i=;i<=n;i++) ade(i,T,C[i]);
int ans=;
tot=n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
ans+=B[i][j];
ade(S,++tot,B[i][j]);
ade(tot,j,INF);
ade(tot,i,INF);
}
while(bfs()) ans-=dinic(S,INF);
printf("%d\n",ans);
return ;
}

看来真的需要补线性代数呀。

BZOJ3996 线性代数的更多相关文章

  1. [TJOI2014] [Bzoj3996] 线性代数 [网络流,最小割]

    由原式,可以推出D=Σ(i=1,n,Σ(j=1,n,A[i]*A[j]*B[i][j]))-Σ(i=1,n,A[i]*C[i]) $D=\sum\limits_{i=1}^{n}\sum\limits ...

  2. 【BZOJ3996】[TJOI2015]线性代数(最小割)

    [BZOJ3996][TJOI2015]线性代数(最小割) 题面 BZOJ 洛谷 题解 首先把式子拆开,发现我们的答案式就是这个: \[\sum_{i=1}^n\sum_{j=1}^n B_{i,j} ...

  3. 【BZOJ3996】[TJOI2015]线性代数 最大权闭合图

    [BZOJ3996][TJOI2015]线性代数 Description 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的 ...

  4. 【BZOJ-3996】线性代数 最小割-最大流

    3996: [TJOI2015]线性代数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1054  Solved: 684[Submit][Statu ...

  5. BZOJ3996 [TJOI2015]线性代数

    就是求$D = A \times B \times A^T - C \times A^T$ 展开也就是$$D = \sum_{i, j} A_i * A_j * B_{i, j} - \sum_{i} ...

  6. BZOJ3996[TJOI2015]线性代数——最小割

    题目描述 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的转置.输出D 输入 第一行输入一个整数N,接下来N行输入B矩阵, ...

  7. BZOJ3996:[TJOI2015]线性代数(最大权闭合子图)

    Description 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的转置.输出D Input 第一行输入一个整数N,接 ...

  8. BZOJ3996 TJOI2015线性代数

    先把矩阵式子化简 原式=∑i=1n∑j=1nA[i]∗B[i][j]∗A[j]−∑i=1nA[i]∗C[i] 因此我们发现问题转化为选取一个点所获收益是B[i][j],代价是C[i][j] 这是一个最 ...

  9. BZOJ3996 [TJOI2015]线性代数 【最小割】

    题目 给出一个NN的矩阵B和一个1N的矩阵C.求出一个1*N的01矩阵A.使得 D=(AB-C)A^T最大.其中A^T为A的转置.输出D 输入格式 第一行输入一个整数N,接下来N行输入B矩阵,第i行第 ...

随机推荐

  1. 高性能JS-DOM

    用脚本进行DOM操作的代价是很昂贵的,它是富web应用中最常见的性能瓶颈.主要有以下三种问题: 访问和修改DOM元素 修改DOM元素的样式导致repaint和reflow 通过DOM事件处理与用户进行 ...

  2. IIS Express 的怪毛病 vs2013本机调试

    本机调试时,如果同一个项目有多个版本,同时debug,可能会串项目调试,造成不必要的困扰: 通常情况下是 IIS express的映射出现了问题: 解决方案: 1.打开目录:查看文件C:\Users\ ...

  3. android 获得屏幕宽度和高度

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  4. js时间戳和时间格式之间的转换

    //时间戳转换成日期时间2014-8-8 下午11:40:20 function formatDate(ns){ return new Date(parseInt(ns) * 1000).toLoca ...

  5. 公司hadoop客户端试用

    今天用了一下公司的hadoop客户端,从外面下载的客户端不能用,只能用这个wiki里面提供的:link 装在了 tc-cm-201511novam12x12n0.tc 目录 /home/work/vi ...

  6. 【LeetCode】Generate Parentheses 解题报告

    [题目] Given n pairs of parentheses, write a function to generate all combinations of well-formed pare ...

  7. 获取DOM父元素和子元素

    利用javascript可以遍历DOM树,这篇文章介绍用获取一个DOM元素的所有父节点和获取一个DOM元素的所以子孙节点. 1.获取所有父节点.用递归的方法,用parentNode属性. <!D ...

  8. npm 的常用操作

    cd 项目目录 npm install -y 初始化信息,-y表示所有的选择都表示确定 执行完之后会自动生成一个package.json文件 添加依赖: npm -i(install) jquery ...

  9. Django-权限信息中间件操作

    # 在当前app下新建一个middleware的文件夹,然后就可以尽情的写中间件了,只能是这个名字,切记~@!import re from django.shortcuts import redire ...

  10. arm-linux交叉编译环境搭建

    1.解压交叉编译工具链包 tar jxvf EABI-4.3.3_EmbedSky_20100610.tar.bz2 (笔者将交叉编译工具链包放在”/home ”目录下) 解压后会生成两个目录: [r ...