bzoj4639 博士的選取器

2022-04-29 22:30:15 字數 921 閱讀 9211

給出乙個長度為n的正整數序列,要求把它劃分成若干個連續的區間,使得每個區間的數字之和都不超過給定的lim.最後的代價等於每個區間的最大值之和.求最小代價.n<=300000

定義f[i]表示前i個數劃分成若干個區間的最小代價,一眼是個1d1d動態規劃,猜測有決策單調性,打表發現並沒有.然後也看不出什麼很妙的性質.

感覺分治也許能做,推一推發現確實可以.定義solve(l,r)處理f[l...mid]到f[mid+1...r]的轉移,按照最大值在左邊/右邊分兩種情況處理,都可以線性解決.遞迴時要先solve(l,mid),然後處理[l,mid]到[mid+1,r]的轉移,再solve(mid+1,r).細節見**,不是很難寫.

#include#includeusing namespace std;

const int maxn=300006;

typedef long long ll;

int n;ll lim;

ll f[maxn];

ll pre[maxn],a[maxn];

ll min[maxn],max[maxn],mark[maxn];

void gmin(ll &a,ll b)

void solve(int l,int r)

for(int i=mid+1;i<=r;++i)mark[i]=(1ll<<60);

int r=r;pt=mid;

for(int i=mid;i>l;--i)

} for(int i=r;i>=mid+1;--i)

solve(mid+1,r);

}int main()

for(int i=1;i<=n;++i)

solve(1,n);

printf("%lld\n",f[n]);

return 0;

}

瀏覽器中選取元素的方法總結

定義在document物件中 document.getelementbyid定義在document物件中 document.getelementbyname定義在document物件中 element類也有定義 document.getelementsbytagname element.getele...

jQuery 選擇器選取指定元素的後代的所有元素。

parent descendant 選擇器選取指定元素的後代的所有元素。元素的後代可以是元素的第一代 第二代 第三代等等。選取 元素的後代的所有 元素 div span parent descendant parent 必需。規定要選取的父元素。descendant 必需。規定要選取的 指定父元素的...

變壓器輸出整流的蓄能電容選取方法

現在便攜裝置基本都是開關電源作,變壓器所構成的線性電源由於簡單的原理和方便的維修性等,仍然佔據這電源部分的大半江山。以下是乙個簡易的通過變壓器和穩壓管輸出220v 5v的電路輸出 儲能使用的電容一般採用電解電容,可以通過計算得到該容值 這裡輸入是半波,根據電容充放電公式 u t q t c,嚴格的數...