解题思路:分治, r为分治求出的最短时间,从后向前遍历书稿,将书稿复制边界存入res数组中
注意事项:
参考代码:
#include#includeusing namespace std; const int N = 5e2 + 10; int a[N],m,k,res[N]; bool check(int mid){ int cnt = 0, ans = 1; for(int i = 1; i mid){ ans ++; cnt = a[i]; } } return ans > m >> k; for(int i = 1; i > a[i]; int l = 0, r = 1e9; while(l < r){ int mid = (l + r) / 2; if(check(mid)) r = mid; else l = mid + 1; } int cnt = 0, j = 1; for(int i = m; i >= 1; i --){ cnt += a[i]; if(cnt > r) { res[j ++] = i + 1; cnt = a[i]; } } res[0] = m + 1, res[j] = 1; for(int i = j; i >=1; i --) cout << res[i] << ' ' << res[i-1] - 1 << endl; return 0; }
0.0分
1 人评分
高精度加法 (C++代码)(大数加法)浏览:1008 |
A+B for Input-Output Practice (VII) (C++代码)浏览:643 |
c primer plus 第十二章 12.1小节浏览:400 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:949 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:1267 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:956 |
DNA (C语言描述,蓝桥杯)浏览:1653 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:821 |
用筛法求之N内的素数。 (C语言代码)浏览:711 |
1011题解浏览:819 |