題意:中文題
題解:先旋轉三角形。
然後要打掉第i行第j個,就要打掉第i行第j-1個和第i-1行第j-1個。
所以到第i,j元素時,對於第i行,前j都被打掉,後面的都沒被打掉。但是對於第i-1行,前j-1一定被打掉,但後面的可以被打掉,也可以不打掉。所以狀態轉移就很好寫了。
**:
#include #include#includeusing namespace std;
int a[55][55];
int dp[55][55][1300];
int main()
} //預處理字首和
for(i=1;i<=n;i++)
} for(i=1;i<=n;i++)
}} }
int ans=0;
for(i=1;i<=n;i++)
printf("%d\n",ans);
//cout << "hello world!" << endl;
return 0;
}
dp 洛谷P1437 HNOI2004 敲磚塊
這道題不可以直接行列dp 這樣乙個狀態可以從非常多且複雜的狀態更新過來 很麻煩,不可取 標算 這裡講的很好 但是我們不用旋轉三角形,直接在dp的時候換一下順序就好啦 include include include include define ll long long using namespace...
洛谷P1437 HNOI2004 敲磚塊 dp
無 在乙個凹槽中放置了 n 層磚塊 最上面的一層有n 塊磚,從上到下每層依次減少一塊磚。每塊磚 都有乙個分值,敲掉這塊磚就能得到相應的分值,如下圖所示。14 15 4 3 23 33 33 76 2 2 13 11 22 23 31如果你想敲掉第 i 層的第j 塊磚的話,若i 1,你可以直接敲掉它 ...
洛谷 P1437 HNOI2004 敲磚塊
在乙個凹槽中放置了 n 層磚塊 最上面的一層有n 塊磚,從上到下每層依次減少一塊磚。每塊磚 都有乙個分值,敲掉這塊磚就能得到相應的分值,如下圖所示。14 15 4 3 23 33 33 76 2 2 13 11 22 23 31如果你想敲掉第 i 層的第j 塊磚的話,若i 1,你可以直接敲掉它 若i...