題意:給出n*m的矩陣求最大子矩陣和,要求必須把矩陣中的某乙個元素替換成p
**:
//求最大子矩陣和,容易想到壓縮之後dp但是這道題要求必須替換一次p,必然優先替換最小的。
//這樣如果求得的結果恰好等於這個矩陣所有的元素的
//和但不是整個矩陣,並且沒有替換元素結果就不對了,需要特判一下這種情況。比如以下兩組資料:
//2 2 -4 2 2 -4
//1 -1 1 1
//1 1 1 1 dp求出來的結果分別是2和4並且沒有替換p。
#include#include
#include
using
namespace
std;
const
int inf=0x3f3f3f3f
;int mp[309][309],b[309],c[309],f[309][2
];int
n,m,p,ans;
void
dp()
}void
solve()
}}int
main()
ans=-inf;
for(int i=1;i<=n;i++)
if(i==1&&j==n) solve();
else
dp();}}
printf(
"%d\n
",ans);
}return0;
}
最大子矩陣 DP
time limit 10000ms memory limit 165888kb 64bit io format lld llu hysbz 1084 這裡有乙個n m的矩陣,請你選出其中k個子矩陣,使得這個k個子矩陣分值之和最大。注意 選出的k個子矩陣不能相互重疊。第一行為n,m,k 1 n 10...
最大子矩陣 dp
已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空 大小至少是1 1 子矩陣。比如,如下4 4的矩陣 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2 的最大子矩陣是 9 2 4 1 1 8 這個子矩陣的大小是15。輸入是乙個n n的矩陣。輸入的第一行給出n...
最大子矩陣問題 dp
e acmer 題意 給你乙個矩陣,求它的所有元素和最大的子矩陣.分析 我們只知道一維的情況就是經典的最大子段和.然而維數達到二維就變的複雜了.我們觀察資料範圍500,易想到n3 的演算法也能過.純暴力是n4 的方法 然後可以通過列舉其中一維,dp最後一維的方法求出.處理列上的和為字首和,然後列舉列...