zoukankan      html  css  js  c++  java
  • 【LG3973】[TJOI2015]线性代数

    【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}^nsum_{j=1}^na_i*a_j*b_{i,j}-sum_{i=1}^na_i*c_i ]

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

    因为(forall a_iin{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) ightarrow i(cap=infty)\ (i,j) ightarrow j(cap=infty) ]

    然后总和-最小割即可

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

    奇怪的(AC)

    (sum_{i=1}^nsum_{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
    ", ans); 
    	return 0; 
    } 
    
  • 相关阅读:
    ArcgisServerJS固件位置
    PrintTemplate说明
    地图打印仅地图4X
    地图打印4X
    IIS下设置跨域访问问题--Access-Control-Allow-Origin 站点跨域请求的问题
    javascript的 热点图怎么写
    Flex 加载shp
    Flex 加载dwg
    Flex 加载tiff
    Flex 加载 wmf,svg
  • 原文地址:https://www.cnblogs.com/heyujun/p/10281212.html
Copyright © 2011-2022 走看看