時間限制: 1 sec 記憶體限制: 128 mb
提交: 12 解決: 12
[提交][
狀態][
討論版][命題人:外部匯入][
edit] [testdata] [
同步資料]
牛在飼料槽前排好了隊。飼料槽依次用1到n(1<=n<=2000)編號。每天晚上,一頭幸運的牛根據約翰的規則,吃其中一些槽裡的飼料。
約翰提供b個區間的清單。乙個區間是一對整數start-end,1<=start<=end<=n,表示一些連續的飼料槽,比如1-3,7-8,3-4等等。牛可以任意選擇區間,但是牛選擇的區間不能有重疊。
當然,牛希望自己能夠吃得越多越好。給出一些區間,幫助這只牛找一些區間,使它能吃到最多的東西。
在上面的例子中,1-3和3-4是重疊的;聰明的牛選擇,這樣可以吃到5個槽裡的東西。
第一行,整數b(1<=b<=1000)
第2到b+1行,每行兩個整數,表示乙個區間,較小的端點在前面。
僅乙個整數,表示最多能吃到多少個槽裡的食物。
31 37 8
3 4
5設f[i]表示以第i個槽作為當前所選的所有區間的最後乙個的最右邊那個槽;或者之前有一段空白的最大能吃到的東西數量;
區間l[i],r[i]貢獻的東西量為r[i]-l[i]+1;
f[i] = max(f[l[j]-1]+r[j]-l[j]+1,f[i]);其中r[j] = i;
#include #include#include
#include
#include
using
namespace
std;
const
int maxn = 1100
;int
n;int l[maxn],r[maxn],f[2001
];//
設f[i]表示以第i個槽作為當前所選的所有區間的最後乙個的最右邊那個槽
intmain()
}cout
<2000
];
return0;
}
[ 提交][
狀態][
edit] [testdata]
posted on
2019-04-19 09:29
蔡軍帥_acm 閱讀(
...)
編輯收藏
飢餓的牛(dp一維最大覆蓋)
時間限制 1 sec 記憶體限制 128 mb 提交 12 解決 12 提交 狀態 討論版 命題人 外部匯入 edit testdata 同步資料 牛在飼料槽前排好了隊。飼料槽依次用1到n 1 n 2000 編號。每天晚上,一頭幸運的牛根據約翰的規則,吃其中一些槽裡的飼料。約翰提供b個區間的清單。乙...
牛客 獲取n維陣列的最大深度 棧
題目描述 輸入引數為字串型的n維陣列,陣列的每一項值為陣列 或 int型數字。請實現乙個函式,可以獲取列表巢狀列表的最大深度為多少。輸入描述 輸入引數為字串型的 n維陣列,列表的每一項值為陣列 或 int型數字。陣列內的陣列,每一項值,也可以是陣列 或 int型數字。輸出描述 int型數字,表示陣列...
一維陣列的最大子段和
public static int maxsubarray int a,int n return max 解釋說明 假設下標 m,n 這一段是最大值段,即b sum,sum b 如果往後加,加的是負數,則b一直小於sum,則表示 m,n 這一段一直為最大值段,最大值sum不變 如果加到後面某一值 下...