The document contains code snippets for solving problem 1451 on the Algorithm Problem Solving website acmicpc.net. It includes nested for loops calculating the sums of subsets in different ranges of a 2D array and updating the maximum value of their product. The code is testing all possible combinations of splitting the 2D space into three partitions.
All slides reference https://www.acmicpc.net/problem/1451, indicating a problem or assignment about this link.
Showcases various algorithm implementations using nested loops and conditions to maximize the product of sections from a problem, using sum() function.
Links to external resources on Github for further information regarding the problem or relevant code snippets.
for (int i=1;i<=m-2; i++) {
for (int j=i+1; j<=m-1; j++) {
long long r1 = sum(1,1,n,i);
long long r2 = sum(1,i+1,n,j);
long long r3 = sum(1,j+1,n,m);
if (ans < r1*r2*r3) {
ans = r1*r2*r3;
}
}
}
https://www.acmicpc.net/problem/1451
17.
for (int i=1;i<=n-2; i++) {
for (int j=i+1; j<=n-1; j++) {
long long r1 = sum(1,1,i,m);
long long r2 = sum(i+1,1,j,m);
long long r3 = sum(j+1,1,n,m);
if (ans < r1*r2*r3) {
ans = r1*r2*r3;
}
}
}
https://www.acmicpc.net/problem/1451
18.
for (int i=1;i<=n-1; i++) {
for (int j=1; j<=m-1; j++) {
long long r1 = sum(1,1,n,j);
long long r2 = sum(1,j+1,i,m);
long long r3 = sum(i+1,j+1,n,m);
if (ans < r1*r2*r3) {
ans = r1*r2*r3;
}
}
}
https://www.acmicpc.net/problem/1451
19.
for (int i=1;i<=n-1; i++) {
for (int j=1; j<=m-1; j++) {
long long r1 = sum(1,1,i,j);
long long r2 = sum(i+1,1,n,j);
long long r3 = sum(1,j+1,n,m);
if (ans < r1*r2*r3) {
ans = r1*r2*r3;
}
}
}
https://www.acmicpc.net/problem/1451
20.
for (int i=1;i<=n-1; i++) {
for (int j=1; j<=m-1; j++) {
long long r1 = sum(1,1,i,m);
long long r2 = sum(i+1,1,n,j);
long long r3 = sum(i+1,j+1,n,m);
if (ans < r1*r2*r3) {
ans = r1*r2*r3;
}
}
}
https://www.acmicpc.net/problem/1451
21.
for (int i=1;i<=n-1; i++) {
for (int j=1; j<=m-1; j++) {
long long r1 = sum(1,1,i,j);
long long r2 = sum(1,j+1,i,m);
long long r3 = sum(i+1,1,n,m);
if (ans < r1*r2*r3) {
ans = r1*r2*r3;
}
}
}
https://www.acmicpc.net/problem/1451