精品课程网站建设总结报告,漯河企业网站建设公司,seo这个职位是干什么的,wordpress建音乐题意#xff1a;把一个m个整数的序列划分成k个连续非空的子序列#xff0c;使得子序列和的最大值最小。 思路#xff1a;二分。遇到最大值最小大多都二分了#xff0c;让划分的子序列都不超过x#xff0c;根据x来judge最终结果k个是多还是少#xff0c;然后二分来调整x直…题意把一个m个整数的序列划分成k个连续非空的子序列使得子序列和的最大值最小。 思路二分。遇到最大值最小大多都二分了让划分的子序列都不超过x根据x来judge最终结果k个是多还是少然后二分来调整x直到出现k个序列。 code #include bits/stdc.h
using namespace std;typedef long long ll;
#define int long long
ll m,k,v[505],c[505];
bool judge(ll x)
{ll p0,q0;for (int i0;im;i){pv[i];if (v[i]x) return false;if (px){pv[i];q;}}if (qk-1) return false;return true;
}main()
{int T;scanf(%d,T);while (T--){int s0,len;memset(c,0,sizeof(c));scanf(%lld %lld,m,k);for (int i0;im;i) scanf(%lld,v[i]),sv[i];int l0,rs,mid;while (lr){midl(r-l)/2;if (!judge(mid)) lmid1;else rmid;}lens0;for (int im-1;i0;i--){sv[i];if (sr||k-leni2){sv[i];c[len]i;}}lenk-2;for (int i0;im;i){printf(%lld,v[i]);if (i!m-1) printf( );if (len0ic[len]) printf(/ ),len--;}puts();}
}