51nod-1305 Pairwise Sum and Divide (规律)

来源:互联网 发布:zxhn f420 有千兆端口 编辑:程序博客网 时间:2024/05/16 09:10

有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整:

fun(A)
    sum = 0
    for i = 1 to A.length
        for j = i+1 to A.length
            sum = sum + Floor((A[i]+A[j])/(A[i]*A[j])) 
    return sum

给出数组A,由你来计算fun(A)的结果。例如:A = {1, 4, 1},fun(A) = [5/4] + [2/1] + [5/4] = 1 + 2 + 1 = 4。
Input
第1行:1个数N,表示数组A的长度(1 <= N <= 100000)。第2 - N + 1行:每行1个数A[i](1 <= A[i] <= 10^9)。
Output
输出fun(A)的计算结果。
Input示例
31 4 1
Output示例
4

暴力会超时,显然要找规律。

只有值为1或2时结果才可能不为0,其余情况(A[i]+A[j])/(A[i]*A[j]))均为0;

1:(1+1)/(1*1)=2.

2:(1+x)/(1*x)=1(x>1)

3;:(2+2)/(2*2)=1;

其余情况为0;

#include<stdio.h>int a[100200];int n,s,t;int main(){    while(~scanf("%d",&n))    {        s=0,t=0;        for(int i=0;i<n;i++)        {            scanf("%d",&a[i]);            if(a[i]==1)s++;            if(a[i]==2)t++;        }        int sum=0;        sum+=(n-s)*s;//判 2;        sum+=(s-1)*s;//判 1;        sum+=t*(t-1)/2; //判3;       printf("%d\n",sum);    }    return 0;}


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 氟替卡松吸入气雾剂 盐酸沙丁胺醇气雾剂 雷诺考特喷雾剂 布地奈德喷雾剂 复方沙丁胺醇气雾剂 沙丁胺醇喷雾剂 硫酸沙丁胺醇气雾剂 万托林 盐酸丙卡特罗气雾剂 气韵 百雀羚 气韵 百雀羚气韵价格表 百雀羚气韵套盒价格 百雀羚气韵系列价格 百雀羚气韵系列怎么样 气韵百雀羚价格 百雀羚气韵系列价格表 百雀羚有气韵系列吗 百雀羚气韵草本价格 百雀羚气韵护肤品怎么样 百雀羚气韵臻白如玉 百雀羚气韵多少钱 百雀羚气韵水凝 百雀羚气韵草本系列 百雀羚气韵洗面奶 气韵化妆品多少钱一套 气韵护肤品怎么样 百雀羚气韵水凝恒润美肌水 百雀羚气韵怎么样 百雀羚气韵适合年龄 百雀羚气韵水凝恒润 百雀羚气韵专柜价格 百雀羚的护肤品气韵 气马达 圣杯骸骨之城 三鼓气竭 耳朵鼓气 肚子鼓气怎么办 耳膜内陷鼓气疗法 鼓气耳朵响 肚子气鼓气胀是咋回事 捏鼻子鼓气的危害