zzh學長留的毒瘤題......
首先這題先明白乙個性質:
當我們選擇增區間的高度時,我們應該將所選的增加的左端點到n全增大,因為我們要求
最後成的單調不下降序列長度最大,所以這樣增穩賺不虧。。。。
然後那麼我們發現這題最後的點的最優高度是a[n]+k確定的
設陣列含義f[j][k]表示當前玉公尺高度j,k次操作的最長序列長度
並且我們可以把此題看作三位偏序:
1. 當前玉公尺位置i,由1-i-1轉移
2. 當前玉公尺高度j,由1-j轉移
3.當前玉公尺已操作k,由1-k-1轉移
用樹狀陣列維護j,k,(很顯然了.....)
(為了節省記憶體所以我們第一位迴圈是i,這樣保證我們的i是有序的,就不需要寫在陣列裡,
其實i,j,k,任選兩位都行,只是為了省記憶體嘛.......)
注意點:
1.迴圈k時倒序,(顯然嘛.....當前的k若是正序,他的插入會影響當前位k的列舉)
2.預處理要注意,根據你的列舉來定,當然也可以不
3.ans值不一定選中最後乙個點
1 #include2 #include3 #include4 #include5 #include6 #include7 #includeview code8 #include9
#define int long long
10using
namespace
std;
11int c[511][5501
];12
int a[11001
];13
intmaxn;
14int lowbit(int x)
15int
n,k;
16void add(int x,int y,int sum)//
x 第幾個操作 y 高度 k第k操作
1724}25
}26int query(int x,int
y)2735}
36return
ans;37}
38int ans=0;39
signed main()
4047
for(int i=1;i<=n;++i)
4856}57
//int ans=query(k+1,a[n]+k);
58 printf("
%lld\n
",ans);
59 }
方伯伯的玉公尺田
例題 方伯伯的玉公尺田 一位大佬的鏈結 有關二維樹狀陣列 關於我做這道題的心路歷程 1.我在某個晚上準備練習dp題,看到方伯伯的玉公尺田這 道題,難度適宜,知識簡單,準備做一做。乙個晚上過去 了,我除了推出了他每一次會抬高最右邊的玉公尺外,還推 出了一大堆錯誤結論,例如一定會從已有的上公升序列中的 ...
方伯伯的玉公尺田 SCOI2014
方伯伯在自己的農田邊散步,他突然發現田裡的一排玉公尺非常的不美。這排玉公尺一共有n株,它們的高度參差不齊。方伯伯認為單調不下降序列很美,所以他決定先把一些玉公尺拔高,再把破壞美感的玉公尺拔除掉,使得剩下的玉公尺的高度構成乙個單調不下降序列。方伯伯可以選擇乙個區間,把這個區間的玉公尺全部拔高1單位高度...
方伯伯的玉公尺田 SCOI2014
方伯伯在自己的農田邊散步,他突然發現田裡的一排玉公尺非常的不美。這排玉公尺一共有 n 株,它們的高度參差不齊。方伯伯認為單調不下降序列很美,所以他決定先把一些玉公尺拔高,再把破壞美感的玉公尺拔除掉,使得剩下的玉公尺的高度構成乙個單調不下降序列。方伯伯可以選擇乙個區間,把這個區間的玉公尺全部拔高 1 ...