【LG3973】[TJOI2015]线性代数

题面

洛谷

题解

正常解法

一大堆矩阵乘在一起很丑对吧

化一下柿子:

\[D=(A*B-C)*A^T\\
\Leftrightarrow D=\sum_{i=1}^n(\sum_{j=1}^na_j*b_{j,i}-c_i)*a_i\\
\Leftrightarrow D=\sum_{i=1}^n\sum_{j=1}^na_i*a_j*b_{i,j}-\sum_{i=1}^na_i*c_i
\]

分析一下我们选或不选某个数的贡献:

因为\(\forall a_i\in{0,1}\),所以我们可以将贡献算出

如果同时选\(i,j\),则获得\(b_{i,j}+b_{j,i}\)的贡献

如果不选\(i\),则减去\(c_i\)的贡献

这就是一个最大权闭合子图:

连边时,\(S\)连代表\((i,j)\)的点,容量\(b_{i,j}+b_{j,i}\),

代表\(i\)的点连\(T\),容量\(c_i\)

而如果选\((i,j)\)必选\(i\)、\(j\)再连

\[(i,j)\rightarrow i(cap=\infty)\\
(i,j)\rightarrow j(cap=\infty)
\]

然后总和-最小割即可

然而因为下面的方法,我没有用最大流

奇怪的\(AC\)

\(\sum_{i=1}^n\sum_{j=1}^nb_{i,j}-\sum_{i=1}^n c_i\)

八行主程序:

int main () {
N = gi(); int ans = 0;
for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++) ans += gi();
for (int i = 1; i <= N; i++) ans -= gi();
printf("%d\n", ans);
return 0;
}

【LG3973】[TJOI2015]线性代数的更多相关文章

  1. bzoj 3996: [TJOI2015]线性代数 [最小割]

    3996: [TJOI2015]线性代数 题意:给出一个NN的矩阵B和一个1N的矩阵C.求出一个1*N的01矩阵A.使得 \(D=(A * B-C)* A^T\)最大.其中A^T为A的转置.输出D.每 ...

  2. BZOJ_3996_[TJOI2015]线性代数_最大权闭合子图

    BZOJ_3996_[TJOI2015]线性代数_最大权闭合子图 Description 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大. ...

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

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

  4. 【BZOJ 3996】 3996: [TJOI2015]线性代数 (最小割)

    3996: [TJOI2015]线性代数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1368  Solved: 832 Description 给 ...

  5. [Luogu 3973] TJOI2015 线性代数

    [Luogu 3973] TJOI2015 线性代数 这竟然是一道最小割模型. 据说是最大权闭合子图. 先把矩阵式子推出来. 然后,套路建模就好. #include <algorithm> ...

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

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

  7. [TJOI2015]线性代数(网络流)

    [TJOI2015]线性代数(最大权闭合子图,网络流) 为了提高智商,ZJY开始学习线性代数.她的小伙伴菠萝给她出了这样一个问题:给定一个n*n的矩阵B和一个1×n的矩阵C.求出一个1×n的01矩阵A ...

  8. 洛谷P3973 - [TJOI2015]线性代数

    Portal Description 给定一个\(n\times n\)的矩阵\(B\)和一个\(1×n\)的矩阵\(C\).求出一个\(1×n\)的01矩阵\(A\),使得\(D=(A×B-C)×A ...

  9. 【BZOJ】3996: [TJOI2015]线性代数

    题意 给出一个\(N \times N\)的矩阵\(B\)和一个\(1 \times N\)的矩阵\(C\).求出一个\(1 \times N\)的01矩阵\(A\),使得\[ D = ( A * B ...

随机推荐

  1. Django template for 循环用法

    当列表为空或者非空时执行不同操作: {% for item in list %} ... {% empty %} ... {% endfor %} 使用forloop.counter访问循环的次数,下 ...

  2. [CTSC2018]假面

    题目 先来考虑一下第一问,血量有\(P\)的概率减\(1\) 由于我们最后需要求每一个人的期望血量,于是考虑维护出每个人处于不同血量时候的概率 一个简单\(dp\)即可 \[dp_{i,j}=dp_{ ...

  3. MFC各个控件之间运用SendMessage()传送CString和char[]字符串,以及int类型数据

    LRESULT SendMessage( HWND hWnd, // handle to destination window UINT Msg, // message WPARAM wParam, ...

  4. PCA方法从原理到实现

    一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法,大家知道,我们在处理有关数字图像处理方面的问题时,比如经常用的图像的查询问题 ...

  5. 如何快速找到指定端口被哪个程序占用并释放该端口(解决bindException)

    首先打开打开任务管理器,选择性能模块,下方有打开资源监视器,或者直接搜索资源监视器 在资源监视器中点击侦听端口模块,即可看到正在使用网络端口的应用程序名和pid,如果被占用可以直接使用命令行关闭即可 ...

  6. JS知识点整理(二)

    前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...

  7. CoreAnimation|动画

    IOS开发UI篇--IOS动画(Core Animation)总结 - CSDN博客 iOS动画,绝对够分量! - 简书 iOS动画篇:UIView动画 - 简书 iOS动画开发之五--炫酷的粒子效果 ...

  8. 网站jcms流程分析

    本实例大致流程:基于jsp页面,通过servlet传递数据调用方法,利用service更改数据库.本文重点分析的是其中的两个小方法add()和delete(),来反映出反射机制的一个具体作用:减少Se ...

  9. js 时间转换毫秒的四种方法(转)

    将时间转换为毫秒数的方法有四个: Date.parse()Date.UTCvalueOf()getTime() 1. Date.parse():该方法接受一个表示日期的字符串参数,然后尝试根据这个日期 ...

  10. 洛谷P1501 [国家集训队]Tree II(LCT)

    题目描述 一棵n个点的树,每个点的初始权值为1.对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c: - u1 v1 u2 v2:将树中原有的 ...