福建工程学院第十四届ACM程序设计大赛 - E - 外传:小晋逃生记
http://www.fjutacm.com/Contest.jsp?cid=705#P4
其实想清楚了就很简单,之前想了很多种方法,以为是二分什么的,看起来就像是一个单峰函数。但是发现直接暴力一波就行了。
不知道有没有人会来搜到我的题解?ID是Yinku2017。
题意:求\(x\)使得\(\sum\limits_{i=1}^{n}[a_i/x]+a_i\%x\)
首先把取余运算换成减法。提公因式。
\(\sum\limits_{i=1}^{n}[a_i/x]+a_i\%x=\sum\limits_{i=1}^{n}{[a_i/x]+a_i-x[a_i/x]}=\sum\limits_{i=1}^{n}a_i+\sum\limits_{i=1}^{n}{(1-x)[a_i/x]}\)
发现什么?枚举x,根据某个n/1+n/2+n/3+...+n/n=nlogn的式子,前缀和计算出后半部分的值。恰好a_i最大就是1e6,可以这么搞,估计这道题已经设计好a_i就是1e6的。
小心溢出就可以了。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
int a[1000005]={};
int pa[2000005]={};
int maxa=0;
ll sum=0;
ll minans=0;
int main() {
#ifdef Yinku
freopen("Yinku.in","r",stdin);
#endif // Yinku
scanf("%d",&n);
for(int i=1;i<=n;i++){
int t;
scanf("%d",&t);
if(t>maxa)
maxa=t;
sum+=t;
a[t]++;
}
for(int i=1;i<=maxa*2;i++){
pa[i]=pa[i-1]+a[i];
}
for(int d=2;d<=maxa;d++){
ll tminans=0;
int c=(maxa+d-1)/d;
for(int j=1;j<=c;j++){
if(j*d>maxa)
break;
tminans+=1ll*(pa[(j+1)*d-1]-pa[j*d-1])*j;
}
tminans*=(1ll-d);
if(minans>tminans)
minans=tminans;
}
printf("%lld\n",sum+minans);
}
福建工程学院第十四届ACM程序设计大赛 - E - 外传:小晋逃生记的更多相关文章
- 福建工程学院第十四届ACM校赛M题题解 fwt进阶,手推三进制fwt
第九集,结束亦是开始 题意: 大致意思就是给你n个3进制的数字,让你计算有多少对数字的哈夫曼距离等于i(0<=i<=2^m) 思路: 这个是一个防ak题,做法是要手推公式的fwt 大概就这 ...
- 福建工程学院第十四届ACM校赛J题题解
第六集,想不到你这个浓眉大眼的都叛变革命了 题意: 给你两个只包含01的字符串S和T,问你在允许一次错误的情况下,T是否能成为S的子串 思路: 这个问题的解法挺多,我是用fft匹配的,也比较简单,针对 ...
- 福建工程学院第十四届ACM校赛G题题解
外传:编剧说了不玩游戏不行 题意: 有n个石堆,我每次只能从某一堆中取偶数个石子,你取奇数个,我先手,先不能操作的人输.问最后谁能赢. 思路: 这个题仔细想想,就发现,取奇数的人有巨大的优势,因为假设 ...
- 福建工程学院第十四届ACM校赛B题题解
第二集,未来的我发量这么捉急的吗 题意: 有n个数,请问有多少对数字(i,j)(1<=i<j<=n),满足(a[i]^a[j])+((a[i]&a[j])<<1) ...
- 湖南大学第十四届ACM程序设计新生杯(重现赛)G a+b+c+d=? (16进制与LL范围)
链接:https://ac.nowcoder.com/acm/contest/338/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K6 ...
- 湖南大学第十四届ACM程序设计新生杯(重现赛)I:II play with GG(博弈论||DP)
链接:https://ac.nowcoder.com/acm/contest/338/I 来源:牛客网 题目描述 IG won the S championship and many people a ...
- 湖南大学第十四届ACM程序设计新生杯(重现赛)
RANK 0 题数 0 期末复习没有参加,补几道喜欢的题. A: AFei Loves Magic 签到 思路 :不需考虑 碰撞 直接计算最终状态即可. #include<bits/stdc ...
- 湖南大学第十四届ACM程序设计新生杯 E.Easy Problem
E.Easy Problem Description: Zghh likes number, but he doesn't like writing problem description. So h ...
- 湖南大学第十四届ACM程序设计新生杯 Dandan's lunch
Dandan's lunch Description: As everyone knows, there are now n people participating in the competiti ...
随机推荐
- linux 查找最后几条数据
tail(选项)(参数) -n<N>或——line=<N>:输出文件的尾部N(N位数字)行内容. 例如:grep 查询 2018-02-*/*.log |tail -n 5查询 ...
- Apache/2.4.9启动错误:AH01630: client denied by server configuration
在升级Yii框架1.11->2.0beta时,PHP升级到5.5.顺带升级Apache2.2.x到2.4.9. 把原有vhost配置移植过来,出现Apache启动错误: AH01630: cli ...
- mvn 添加本地jar包
- EasyVideoRecorder短视频拍摄、短视频录制SDK支持IOS版本
在前面的博客<EasyDarwin开发出类似于美拍.秒拍的短视频拍摄SDK:EasyVideoRecorder>和<美拍.秒拍中安卓.IOS短视频拍摄的一些关键技术>中我们简单 ...
- yuicompressor
yui/yuicompressor: YUI Compressor https://github.com/yui/yuicompressor YUI Compressor 详细介绍 YUI ...
- Nothing but the key 属性全部依赖于主键 third norm form
全依赖 Designs that Violate 1NF CustomerCustomer ID First Name Surname Telephone Number123 Pooja Singh ...
- spring定时器的配置
首先,新建一个java项目,下面导入需要的jar包: 这里有你需要的jar包哦. jar包下载 在src文件夹下,新建一个applicationContext.xml文件 <?xml versi ...
- llmp_install.zip
https://pan.baidu.com/s/14tQdE9CPe55P5m9rGm5ekw
- HTML5与php实现消息推送功能
1.html页面basic_sse.html <!DOCTYPE html> <html lang="en"> <head> <meta ...
- (转)定制findbugs规则
转载自http://www.51testing.com/html/97/13997-211893.html 这类文章极少,字节码操作需要对becl库及jvm字节码操作有一定常识.参考: http:// ...