P3287 SCOI2014 方伯伯的玉公尺田

2022-05-27 21:27:14 字數 788 閱讀 2251

首先可以證明,一定存在一種最優解,每次選擇的區間結尾都是 \(n\)。因為如果某乙個區間結尾不是 \(n\),將其替換成 \(n\) 仍然保持單調不下降。接著都按這個策略拔高玉公尺。

令 \(f_\) 表示 \(1\sim i\) 這段字首進行了 \(j\) 次操作,第 \(\boldsymbol i\) 株玉公尺不被拔掉,所能剩下最多的玉公尺。

\[f_=\max\|p

列舉 \(i\),剩下兩個限制用二維樹狀陣列維護即可。

有乙個小細節,操作次數可能為 \(0\),扔進樹狀陣列時需要加 \(1\)。

時間複雜度 \(o(nk\log k\log a)\)。

code:

#includeusing namespace std;

#define max(x,y)((x)>(y)?x:y)

#define for(i,x,y)for(i=x;i<=(y);i++)

#define down(i,x,y)for(i=x;i>=(y);i--)

#define lowbit(x)((x)&-(x))

int c[505][5505],a[10005],k,mx;

int sum(int x,int tmp)

return res;

}void add(int x,int tmp,int z)

}int main()

printf("%d",ans);

return 0;

}

P3287 SCOI2014 方伯伯的玉公尺田

p3287 scoi2014 方伯伯的玉公尺田 方伯伯在自己的農田邊散步,他突然發現田裡的一排玉公尺非常的不美。這排玉公尺一共有n株,它們的高度參差不齊。方伯伯認為單調不下降序列很美,所以他決定先把一些玉公尺拔高,再把破壞美感的玉公尺拔除掉,使得剩下的玉公尺的高度構成乙個單調不下降序列。方伯伯可以選...

P3285 SCOI2014 方伯伯的OJ

因為 n leq 10 8 m leq 10 5 所以可以用乙個域很大的權值線段樹動態開點維護。開始 l 1 r n l,r 的點值看作 1 把乙個位置的數提前相當於 l 1 的位置加 1 原來的位置 1 變為 0 放後也類似。用兩個 map 維護數的位置和編號的相互對映。include defin...

SCOI2014 方伯伯的OJ

資料範圍 n 108 m 105 n 108 m 105 一眼平衡樹。5分鐘出思路,調了3小時。我們不好直接維護排名的平衡樹,也不好直接維護編號的平衡樹。那就建2 2 顆平衡樹,一棵以編號中序遍歷,一棵以排名中序遍歷,每個節點開pa ir role presentation style positi...