暴力 心中報情(jzoj 2317)

2021-09-26 23:07:46 字數 996 閱讀 3341

在乙個n*m矩陣中,有k個選定的子矩陣,每個矩陣有乙個代價,現在讓你選兩個子矩陣(有相交的),使他們覆蓋的元素之和減去他兩的代價最大(重複的只算一次)

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 2

0 01 1 1 1 0

1 2 1 2 0

f
直接暴力列舉所有子矩陣即可

#include

#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];

intread()

while

(x>=

'0'&&x<=

'9') o=

(o<<3)

+(o<<1)

+x-48

,x=getchar()

;return d*o;

}int

main()

}if(ans==

-1152921504606846976

)printf

("f");

else

printf

("%lld"

,ans)

;return0;

}

暴力 NOIP普及組T1 心中報情

又敗給了long long呢。link 暴力列舉每兩個矩陣即可。開long long 快讀就可以了。emmmmmmmmmm include include using namespace std long long n,m,k long long x1 1001 y1 1001 x2 1001 y2...