题意:输入t表示有多个样例,输入n,group表示有n个数分为group组使每组和最小
输出‘/’时注意格式。
#include#include using namespace std; #define ll long long const int N = 500 + 5; ll a[N]; int vis[N]; ll num,m,group; int solve(int d){ ll sum=0; int k=1; for(int i=0;i =0;i--)//从后开始确定‘/’的位置 { if(sum+a[i]<=m) { sum+=a[i]; } else//确定划分的位置 { k++; sum=a[i]; vis[i]=1; } } for(int i=0;i >num>>group; for(int i=0;i >a[i]; sum+=a[i]; if(m m) { if(solve(mid)) { sum=mid; } else m=mid+1; mid=(sum+m)/2; } // cout< <