區間DP tyvj 1466 最美妙的矩陣

2021-08-10 07:06:03 字數 760 閱讀 6492

題目分析:

這是一道區間dp,但我一開始連暴力都想複雜了。(qwq)結果連30分的暴力都沒想到!!!

解法一:其實這道題的暴力應該還是蠻好想的!分別列舉兩個端點(乙個左上,乙個右下)然後暴力掃一遍區間,看是否合法即可,然後記錄最大值。

解法二:我們優化一下上述思路,我們先預處理一下。用u[i][j]記錄第i行第j列的數往上單調遞減的最大值,再用乙個can[i][j][k]陣列表示第i行到第j行中的第k列是否能和k-1列合在一起。然後就可以dp了,我們用f[i][j][k]表示從第i行到第j行中的第k列能夠得到的最大面積。然後寫乙個if判斷一下就好,具體看**中說明。

#include

#include

#include

#include

#include

using namespace std;

int a[210][210],u[210][210],can[210][210][210],f[210][210][210];

int ans,n,m;

//a為原陣列,用來儲存輸進來的值

//u[i][j]表示第i行第j列的往上單調遞減的最大值

//can[i][j][k]表示第i行到第j行中的第k列能否滿足要求

//f[i][j][k]表示第i行到第j行中的第k列的子矩陣的最大面積

int main()

printf("%d",ans);

return 0;

}

區間DP tyvj 1198 矩陣連乘

記憶體限制 128 mib 時間限制 1000 ms 標準輸入輸出 題目型別 傳統評測方式 文字比較 乙個nm矩陣由n行m列共nm個數排列而成。兩個矩陣a和b可以相乘當且僅當a的列數等於b的行數。乙個nm的矩陣乘以乙個mp的矩陣等於乙個np的矩陣,運算量為nmp。矩陣乘法滿足結合律,abc可以表示成...

區間最值問題

實驗任務 已知乙個有 n 個數序列 a i 在序列 a 中的區間 l,r 中的最小值為 a p 求 a p a l a l 1 a r 的最大值為多少?資料輸入 第一行是乙個整數 n 第二行為 n 個整數對應 a i 對於 50 資料 1 n 5000 對於 100 資料 1 n 100 000 1...

Segment Tree Beats 區間最值問題

線段樹一類特殊技巧!引出 cf671c ultimate weirdness of an array 其實是考試題,改題的時候並不會區間取最值,區間求和,之後秉承著好好學習的態度,學習了segment tree beats 套路是維護出區間最小值和次小值,以及區間最小值數量。之後再維護出題目中需要的...