题目大意:

给定一个长度为\(n\)的序列

让你找一个\(x\),使得\(ans\)尽可能小

其中$$ans=\sum_{i=1}^{n}\lfloor\frac{a_i}{x}\rfloor + \sum_{i=1}^{n} a_i\mod x $$

我们看到这个式子,可以考虑化简一下$$ans=\sum_{i=1}^{n}\lfloor\frac{a_i}{x}\rfloor + \sum_{i=1}^{n} a_i-\lfloor\frac{a_i}{x}\rfloor \times x $$

然后再合并一下下

\[ans=\sum_{i=1}^{n} a_i + \sum_{i=1}^{n} \lfloor\frac{a_i}{x}\rfloor \times (1-x)
\]

然后我们就可以枚举\(x\)和枚举\(\lfloor\frac{a_i}{x}\rfloor\)

虽然我也不知道为什么复杂度是对的

不过貌似就是过了哎

记得用桶维护一下\(a_i\)的值,然后暴力算即可

直接上代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath> using namespace std; inline long long read()
{
long long x=0,f=1;char ch=getchar();
while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
return x*f;
} const int maxn = 2e6+1e2; long long sum[maxn];
int n,m;
long long a[maxn];
long long max1;
long long ans=1e18;
long long tmp; int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++) a[i]=read(),sum[a[i]]++,max1=max(max1,a[i]),tmp=tmp+a[i];
for (int i=1;i<=max1;i++) sum[i]+=sum[i-1];
for (long long x=1;x<=max1;x++)
{
long long cnt=0;
for (long long i=0;i<=max1/x;i++)
{
long long l = x*i;
long long r = min(x*(i+1)-1,max1);
cnt+=(1-x)*(sum[r]-sum[l-1])*i;
}
ans=min(ans,cnt);
}
ans=tmp+ans;
cout<<ans;
return 0;
}

最新文章

  1. salesforce 零基础学习(四十七) 数据加密简单介绍
  2. mysql Statement violates GTID consistency 的坑
  3. RHEL提示RHN没有注册问题的解决方法
  4. JAVA中堆栈和内存分配原理
  5. linux包之procps之pmap命令
  6. hdu 5264 pog loves szh I 水题
  7. css笔记——移动端
  8. Python(2.7.6) 列表推导式
  9. 当append里面的标签显示不出来的时候,用下面的方式做
  10. ADB命令与monkey
  11. 第15章-输入/输出 --- 理解Java的IO流
  12. CDH 集群机器上部署 Jupyter notebook 使用 Pyspark 读取 Hive 数据库
  13. laravel belongsTo使用
  14. vue WepApp 音乐App实战以及各个知识点
  15. python time 时间处理
  16. 设置DNS 代理
  17. mybatis之一对一关联
  18. Cobbler无人值守安装linux系统
  19. asp.net mvc 使用Ajax调用Action 返回数据【转】
  20. vim分屏功能总结

热门文章

  1. Linux&#183;命令收藏
  2. MySQL-SQL基础-DCL
  3. 手撕LRU缓存
  4. tomcat配置启动不了
  5. JS 之 每日一题 之 算法 ( 有多少小于当前数字的数字 )
  6. Django中使用MySQL数据库的连接配置
  7. NOIP模拟50
  8. java 集合特性面试必备
  9. 内核软中断之tasklet机制
  10. freeswitch 编译安装后的配置