第一問看上去像是個樹形結構,但是其實我們可以把它直接看成是乙個區間dp。令fi
,j儲存區間[i
,j] 內的最大加分,那麼三重迴圈分別列舉左端點、右端點和中間元素,無腦迴圈出來的f1
,n即為[1
,n] 區間內的最大加分。在計算過程中,每次記錄一下每個節點的位置,方便第二問輸出。
#include
#include
#include
#include
#include
#include
#include
#include
int nextint()
typedef
long
long ll;
ll n, f[31][31] = , i, j, k, x, a[31] = , node[31][31] = ;
void ltr(const
int l, const
int r)
int main(int argc, char **argv)
for (int i = n - 1; i >= 1; i--)
for (int j = i + 1; j <= n; j++)
for (int k = i; k <= j; k++)
if (f[i][k - 1] * f[k + 1][j] + a[k] > f[i][j])
std::cout
<< f[1][n] << std::endl;
ltr(1, n);
#ifdef __edward_edit
std::cin.get();
std::cin.get();
#endif
return
0;}
NOIP考前題目回顧 Luogu P1003
既然給出了每個地毯的座標和長度,在地毯數目不是特別多的情況下,我們可以用乙個結構體來儲存所有地毯的資訊。那麼計算的時候從0開始列舉,如果這個地方有一張地毯在上面,就讓答案等於它就好了。注意因為要求的是最後一張地毯是哪個,所以我們判斷的範圍應該一步一步縮小,保證求出來的是最終答案。include in...
NOIP 考前注意
0.比賽前一天晚上請準備好你的各種證件,事先查好去往考場的路線 1.比賽之前請先調整你的螢幕解析度到你喜歡的大小 2.比賽之前請把編譯器的字型調為你平時慣用的字型,尤其是注意這種字型中的逗號,點,1,l這種易混淆的字是不是區分明顯 3.在不影響視野的情況下,請將字型大小盡可能調大,方便查錯 4.請將...
NOIP2016考前總結
一 考前準備 帶身份證 或學生證 筆 手錶 調準考試機的系統時間 二 考試時注意事項 1 解壓考試檔案。2 建好考試資料夾,生成考試題目檔案,默寫標頭檔案,除錯一下程式,寫輸入輸出檔案,1 默寫標頭檔案 加上 的為不常用的 include include include include includ...