模拟赛 T1 好做法
不服来叉
首先肯定要二分答案
考虑删除剩下
这里我们先假设之前
不妨考虑在删之前
那我们就要使得之前
显然有策略:对每个数
可以看成是填一个
那这样留到最后一行的进位个数就是
那么
#include <cstdio>
#include <algorithm>
#define int long long
using namespace std;
int T, n, a[5000050];
inline int R()
{
int q = 0;
char c = getchar();
while (c < '0' || c > '9')
c = getchar();
while (c >= '0' && c <= '9')
q = q * 10 + c - '0', c = getchar();
return q;
}
bool C(int k)
{
int z = 0;
for (int i = n; i > k; --i)
{
z += a[i - k];
if (z > (n - i + 1) * (i - 1))
return 0;
}
return 1;
}
signed main()
{
freopen("magic.in", "r", stdin);
freopen("magic.out", "w", stdout);
T = R();
while (T--)
{
n = R();
for (int i = 1; i <= n; ++i)
a[i] = R();
sort(a + 1, a + n + 1);
int l = 1, r = n;
while (l <= r)
{
int m = l + r >> 1;
if (C(m))
r = m - 1;
else
l = m + 1;
}
printf("%lld\n", l);
for (int i = 1; i <= n; ++i)
a[i] = 0;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具