国内扁平化网站,怎么根据已有网站做新网站,wordpress设置永久链接404,网站后台管理系统模块心中报情
jzoj 2317
题目大意#xff1a;
在一个n*m矩阵中#xff0c;有k个选定的子矩阵#xff0c;每个矩阵有一个代价#xff0c;现在让你选两个子矩阵#xff08;有相交的#xff09;#xff0c;使他们覆盖的元素之和减去他两的代价最大#xff08;重复的只算一次…心中报情
jzoj 2317
题目大意
在一个n*m矩阵中有k个选定的子矩阵每个矩阵有一个代价现在让你选两个子矩阵有相交的使他们覆盖的元素之和减去他两的代价最大重复的只算一次
输入样例#1
3 3 3
2 1 -1
-1 0 1
1 -2 1
2 1 3 2 -1
1 1 3 3 2
1 1 1 1 0输出样例#1
1输入样例#2
1 2 2
0 0
1 1 1 1 0
1 2 1 2 0输出样例#2
F解题思路
直接暴力枚举所有子矩阵即可
代码
#includecstdio
#define max(a,b) (a)(b)?(a):(b)
#define min(a,b) (a)(b)?(a):(b)
using namespace std;
long long n,m,k,x0,x1,y0,y1,s1,s2,s3,ans,c[1500],x[5][1500],y[5][1500],f[1500][1500];
int read()
{char xgetchar();long long d1,o0;while (x0||x9) {if (x-) d-1;xgetchar();}while (x0x9) o(o3)(o1)x-48,xgetchar();return d*o;
}
int main()
{ans-1152921504606846976;nread();mread();kread();for (int i1;in;i)for (int j1;jm;j)f[i][j]f[i-1][j]f[i][j-1]-f[i-1][j-1]read();for (int i1;ik;i)x[0][i]read(),y[0][i]read(),x[1][i]read(),y[1][i]read(),c[i]read();for (int i1;ik;i)for (int ji1;jk;j){x0max(x[0][i],x[0][j]);//求相交部分x1min(x[1][i],x[1][j]);y0max(y[0][i],y[0][j]);y1min(y[1][i],y[1][j]);if (x0x1y0y1)//判断是否相交{s1f[x[1][i]][y[1][i]]-f[x[0][i]-1][y[1][i]]-f[x[1][i]][y[0][i]-1]f[x[0][i]-1][y[0][i]-1];//第一个矩阵s2f[x[1][j]][y[1][j]]-f[x[0][j]-1][y[1][j]]-f[x[1][j]][y[0][j]-1]f[x[0][j]-1][y[0][j]-1];//第二个矩阵s3f[x1][y1]-f[x0-1][y1]-f[x1][y0-1]f[x0-1][y0-1];//相交部分ansmax(ans,s1s2-s3-c[i]-c[j]);}}if (ans-1152921504606846976) printf(F);else printf(%lld,ans);return 0;
}