能不能帮帮我
原题链接:96998.【ZZSR #1】完美储存2026-04-25 17:01:37
发布于:浙江
路过的DALAO帮帮我
谁能帮我优化一下
#include <bits/stdc++.h>
using namespace std;
int n,s;
const int N = 1e5+7;
int a[N],u[N];
int main()
{
int t,ans = 0;
cin >> t;
while(t--)
{
long long sum = 0;
cin >> n >> s;
for(int i = 1;i <= n;i++)
{
cin >> a[i];
sum += a[i];
}
int l = 1,r = 1e5+4;
while(l <= r)
{
long long mid = (l+r)/2;
if(mid*s < sum)
{
l = mid + 1;
continue;
}
for(int j = 1;j <= mid;j++)
{
u[j] = s;
}
bool flag = 1;
for(int k = 1;k <= n;k++)
{
int maxn = -1,maxpos = 0;
for(int j = 1;j <= mid;j++)
{
if(maxn < u[j])
{
maxn = u[j];
maxpos = j;
}
}
if(u[maxpos] > a[k])
{
u[maxpos] -= a[k];
}
else
{
flag = 0;
break;
}
}
if(flag)
{
ans = mid;
r = mid - 1;
}
else
{
l = mid + 1;
}
}
cout << ans << "\n";
}
}
时间复杂度有亿点点大
全部评论 13
2026-04-25 来自 山东
1我尝尝
2026-04-25 来自 广东
0你的输出都是错的,先去优化 WA 把
2026-04-25 来自 浙江
0谢谢大佬,定义忘初始化了,已经AC了
2026-04-26 来自 浙江
0下次有题可以at你吗,不会太水
2026-04-26 来自 浙江
0黄题以上艾特,其他算了。
2026-04-26 来自 浙江
0
1
2026-04-25 来自 山东
01
2026-04-25 来自 山东
01
2026-04-25 来自 山东
01
2026-04-25 来自 山东
01
2026-04-25 来自 山东
0ddd
2026-04-25 来自 浙江
0ddd
2026-04-25 来自 浙江
0ddd
2026-04-25 来自 浙江
0ddd
2026-04-25 来自 浙江
0ddd
2026-04-25 来自 浙江
0

























有帮助,赞一个