Divide Sum 比赛时竟然想不出。。。。。。。

Divide Sum

Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)

SubmitStatus

Problem Description

long long ans = 0;
for(int i = 1; i <= n; i ++)
    for(int j = 1; j <= n; j ++)
        ans += a[i] / a[j];
给出n,a[1]...a[n],求ans

Input

不超过5组数据,每组数据:

第一行n(1 <= n <= 10^5)

第二行n个数,a[1].. a[n] (1 <= a[i] <= 10^5)

Output

每组数据一行,ans

Sample Input

5
1 2 3 4 5

Sample Output

27

如此做法复杂度为:O(nlogn)=n/1+n/2+n/3+n/4+n/5+n/6+n/7+…………+n/n;

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <cmath>
 5 #include <algorithm>
 6 int a[100001],b[100001];
 7 long long ans,ans1;
 8 int main()
 9 {
10     int n,i,x,j,maxa;
11     while(~scanf("%d",&n))
12     {
13         memset(a,0,sizeof(a));
14         maxa=1;
15         for(i=0;i<n;i++)scanf("%d",&x),a[x]++,maxa=maxa>x?maxa:x;
16         b[0]=0;
17         for(i=1;i<=maxa;i++)
18         b[i]=b[i-1]+a[i];
19         ans=0;
20         for(i=1;i<=maxa;i++)
21         {
22             if(a[i])
23             {
24                 ans1=0;
25                 for(j=i-1;j<=maxa;j+=i)
26                 {
27                     ans1+=n-b[j];
28                 }
29                 ans+=ans1*a[i];
30             }
31         }
32         printf("%lld\n",ans);
33     }
34 }

Divide Sum 比赛时竟然想不出。。。。。。。,布布扣,bubuko.com

时间: 2024-10-20 04:24:05

Divide Sum 比赛时竟然想不出。。。。。。。的相关文章

Sets 比赛时想错方向了。。。。 (大数不能处理负数啊)

Sets Time Limit: 6000/3000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatus Problem Description 给出N个数,现在需要将这些数分成若干个不相交的集合,同时给出M个限制集合,使得划分成的集合中,不能有任何一个集合包含给出的M个集合中的任意一个.求有多少种合法的集合划分方案 Input 多组数据,每组数据 : 第一行N,M(1 <= N <= 100,0 &l

ACDream - Divide Sum

先上题目: Divide Sum Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatus Problem Description long long ans = 0;for(int i = 1; i <= n; i ++)    for(int j = 1; j <= n; j ++)        ans += a[i] / a[j];给出n,a[1]...a[

[Phonegap+Sencha Touch] 移动开发24 打包wp8.1的App,运行时输入框聚焦弹出软键盘之后,界面上移而不恢复原位的解决办法

这个现象只出现在phonegap打包sencha touch的wp8.1程序会出现(仅wp8.1,wp8正常),其它js框架我测试了几个(app framework, jquery mobile),好像没有这个问题. 我来描述一下这个现象: 1.运行phonegap打包的wp8程序,打开一个有输入框的界面,如下图: 2.点击输入框,使其弹出软键盘,界面会上移,如下图: 3.点返回键隐藏软键盘(或者点击界面上其它地方隐藏软键盘),此时界面不恢复原位,如下图: 我的一些研究结果: 1.这种现象只出现

JS优先队列排序。出队时,先找出优先级最高的元素,再按照先进先出出队。

/* * 优先队列 * 出队时,先找出优先级最高的元素,再按照先进先出出队. * */ function Queue(){ this.dataStore = [];//存放队列的数组,初始化为空 this.enqueue = enqueue;//向队列尾部添加一个元素 this.dequeue = dequeue;//出队时,先找出优先级最高的元素,再按照先进先出出队. this.theFront = theFront;//读取队首的元素 this.back = back;//对取队尾的元素 t

JavaScript特效实例009-关闭IE主窗口时,不弹出询问对话框

实例009                      关闭IE主窗口时,不弹出询问对话框 实例说明 通常情况我们使用window.close()关闭IE窗口时,都会弹出一个是否关闭的询问框,这节我们来屏蔽掉它. 技术要点 本例主要应用JavaScript的window对象的opener属性将要关闭的IE窗口的打开窗口设置为NULL,然后再通过window对象的close()方法将该窗口关闭,这样就不会弹出询问对话框了. 实现过程 (1)实现功能主页面index.html <html> <

php网页,想弹出对话框, 消息框 简单代码

php网页,想弹出对话框, 消息框 简单代码 <?php echo "<script language=\"JavaScript\">alert(\"OK\");history.back();</script>"; ?> 或者 <?php echo "<script language=\"JavaScript\">\r\n"; echo " a

对于eclipse写java程序时,想查看一下java源代码,出现Source not found 的原因与解决办法

对于eclipse写java程序时,想查看一下java源代码,出现Source not found 如下图: 原因Eclipse默认设定的自带的JDK是没有源src的,需要引入,点击attach Source...添加jdk的src.zip就可以了

给&lt;label&gt;点击事件时, 竟然点击了两次

搜的一方法 给<label>点击事件时, 竟然点击了两次, 所以label包围的input总是被checked或者不checked var evTimeStamp = 0; $(".all-label").on("click",function (e) { //解决label点击会触发两次开始 var now = +new Date(); if (now - evTimeStamp < 100) { return; } evTimeStamp =

风起时,想你

每个人自一出生,命运并不是确定的,总是要受诸多因素地影响,所以我们总是说:“命运掌握在自己的手里”可当上天给你一个不如意时,无论你怎么努力改写,终究只是徒劳地抗衡.当一份自己觊觎已久,却从不曾得到过的温暖与幸福来自那个曾经因为自己害怕用小棍驱赶喊作“怪物”的蛮子时,当命运把这份温暖毁掉甚至是丢弃那个被它玩弄于股掌之间的可怜人时,无人为她伤心.难过,只有那个被她呼作“囡囡”的孩子给过她帮助与关爱,甚至是放在心里的某个角落,于风起时,想起! ————锦瑟柠檬 [一] 某日,宁洋和伙伴们在垛场玩捉迷藏