時間限制:
2000 ms | 記憶體限制:
65535 kb
難度:3 描述
理工學院的
枇杷快熟了,
ok,大家都懂得。而且大家都知道,學校的
枇杷樹都是一列一列的。現在小
y同學已經在籌畫怎麼摘
枇杷了。現在我們假設有一列枇杷樹,而且每棵枇杷樹上枇杷果的數量小
y都已經知道了。
假設現在有
n棵枇杷樹,小
y可以把這
n棵枇杷樹分成
m組,每組枇杷果的數量是這組內每棵枇杷樹上枇杷果數量的和。注意,每組的枇杷樹必須是連續的。(每組最少
1棵樹,最多
n棵樹)。小
y把枇杷往寢室拿的時候是一組一組拿的,所花費的力氣等於這
m組中枇杷果最多的那組枇杷果的數量。現在小
y想花盡量少的力氣把這些枇杷果拿回寢室。
輸入
多組測試資料,以eof結束(<= 100組)
每組測試資料第一行有兩個數n(n <= 1000)和m(1 <=m <= n)
第二行有n個數,分別代表每顆樹上枇杷果的數量
輸出輸出小y同學所花費的最小的力氣,每個結果佔一行。
樣例輸入
3 21 2 3
7 51 4 3 1 5 2 4
樣例輸出
3解題思路:這題第一感覺是dp,dp[i][j]表示前i個果子分成j組的最小力氣,然後tle一發,然後想了好久的資料結構去優化它但是想不出來,然後看到討論區的提示,瞬間頓悟,這題完全可以二分答案+貪心策略,因為只需要找到最大的分組即可,完全沒必要用dp。5
#include#include#includeusing namespace std;
const int maxn = 1005;
int n,m;
int num[maxn];
bool check(int limit)
sum += num[i];
i++;
} return i > n && cnt <= m;
}int main()
int ans;
while(l <= r)
else l = mid + 1;
} printf("%d\n",ans);
} return 0;
}
nyoj 586 瘋牛(二分 貪心)
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 農夫 john 建造了一座很長的畜欄,它包括n 2 n 100,000 個隔間,這些小隔間依次編號為x1,xn 0 xi 1,000,000,000 但是,john的c 2 c n 頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間...
NYOJ 瘋牛問題(二分搜尋 貪心)
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 農夫 john 建造了一座很長的畜欄,它包括n 2 n 100,000 個隔間,這些小隔間依次編號為x1,xn 0 xi 1,000,000,000 但是,john的c 2 c n 頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間...
NYOJ 586 瘋牛(貪心 二分)
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 農夫 john 建造了一座很長的畜欄,它包括n 2 n 100,000 個隔間,這些小隔間依次編號為x1,xn 0 xi 1,000,000,000 但是,john的c 2 c n 頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間...