博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1305 Pairwise Sum and Divide
阅读量:5900 次
发布时间:2019-06-19

本文共 1096 字,大约阅读时间需要 3 分钟。

题目来源:
基准时间限制:1 秒 空间限制:131072 KB 分值: 5
有这样一段程序,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的个数,
有多少1就加一个1,有多少个2就是n*(n-1)/2!
下面给出AC代码:
1 #include 
2 using namespace std; 3 int main() 4 { 5 int n; 6 int a[100005]; 7 while(scanf("%d",&n)!=EOF) 8 { 9 for(int i=1;i<=n;i++)10 scanf("%d",&a[i]);11 sort(a+1,a+1+n);12 int c1=0,c2=0,c3=0;13 for(int i=1;i<=n;i++)14 {15 if(a[i]==1)16 c1++;17 else if(a[i]==2)18 c2++;19 else c3++;20 }21 int ans=c1*(c1+c2+c3-1)+c2*(c2-1)/2;22 printf("%d\n",ans);23 }24 return 0;25 }

 

转载地址:http://xwrsx.baihongyu.com/

你可能感兴趣的文章
谈谈java的BlockingQueue
查看>>
20165313 我期望的师生关系
查看>>
CentOS7+CDH5.14.0安装CDH错误排查: HiveServer2 该角色的进程已退出。该角色的预期状态为已启动...
查看>>
GCC
查看>>
The Oregon Trail 俄勒冈之旅
查看>>
Excel VBA连接MySql 数据库获取数据
查看>>
Nginx页面图片错误 ERR_CONTENT_LENGTH_MISMATCH
查看>>
SQL Server-表表达式基础回顾(二十四)
查看>>
DAO层,Service层,Controller层,View层
查看>>
Developing a Service Provider using Java API(Service Provider Interface)(转)
查看>>
LINQ高级编程 笔记
查看>>
Android 应用开发推荐书单
查看>>
自定义有监听器的ScrollView
查看>>
BAE Flask UEditor 使用七牛云
查看>>
关联的特殊应用
查看>>
Bootstrap系列 -- 15. 下拉选择框select
查看>>
【转载】无限级分类的简单实例
查看>>
关于WinPE安装操作系统
查看>>
使用iftop网络流量监控
查看>>
LeetCode Median of Two Sorted Arrays
查看>>