Description:


高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值。作为计算机竞赛教练的scp大老板,想知道如何分配可以使得全班的喜悦值总和最大。

Input:


第一行两个正整数n,m。接下来是六个矩阵第一个矩阵为n行m列 此矩阵的第i行第j列的数字表示座位在第i行第j列的同学选择文科获得的喜悦值。第二个矩阵为n行m列 此矩阵的第i行第j列的数字表示座位在第i行第j列的同学选择理科获得的喜悦值。第三个矩阵为n-1行m列 此矩阵的第i行第j列的数字表示座位在第i行第j列的同学与第i+1行第j列的同学同时选择文科获得的额外喜悦值。第四个矩阵为n-1行m列 此矩阵的第i行第j列的数字表示座位在第i行第j列的同学与第i+1行第j列的同学同时选择理科获得的额外喜悦值。第五个矩阵为n行m-1列 此矩阵的第i行第j列的数字表示座位在第i行第j列的同学与第i行第j+1列的同学同时选择文科获得的额外喜悦值。第六个矩阵为n行m-1列 此矩阵的第i行第j列的数字表示座位在第i行第j列的同学与第i行第j+1列的同学同时选择理科获得的额外喜悦值。

Output:


输出一个整数,表示喜悦值总和的最大值

Sample Input:




Sample Output:


题解:


这道题建模比较难~显然我有没有想出来~

观摩了黄学长的题解后,个人感觉除以2比较麻烦,于是在黄学长的原图上改了改边权,就可以不用除以2乘以2之类的了QAQ

对于每一个人,从s向该点连一条边权为a(矩阵1)的边,从该点向t连一条边权为b(矩阵2)的边。

如果两个人之间相邻,假设这两个人为u、v,那么由s向u连一条边权为c1(矩阵3或5)的边,由u向t连一条边权为c2(矩阵4或6)的边,然后由u向v连一条边权为c1的边,由v向u连一条边权为c2的边。

刚好割完以后剩下的部分就是一种方案~

代码如下: