8 条题解
-
-1
#include <iostream> #include <string.h> using namespace std; const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; long long n , k; int a[N]; bool cheak(int x) { int ans = 1 , sum = 0; for(int i = 1 ; i <= n ; i++) { sum += a[i]; if(sum > x) { ans++; sum = a[i]; } } return ans <= k; } int main() { cin >> n >> k; int l , r; l = 0 , r = 0; for(int i = 1 ; i <= n ; i++) { cin >>a[i]; r += a[i]; l = max(l , a[i]); } while(l < r) { int mid = l + r >> 1; if(cheak(mid)) r = mid; else l = mid + 1; } cout << r << endl; return 0; }
信息
- ID
- 360
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 313
- 已通过
- 97
- 上传者