Description

给定n根直的木棍,要从中选出6根木棍,满足:能用这6根木棍拼
出一个正方形。注意木棍不能弯折。问方案数。
正方形:四条边都相等、四个角都是直角的四边形。

Input

第一行一个整数n。
第二行包含n个整数ai,代表每根木棍的长度。
n ≤ 5000, 1 ≤ ai ≤ 10^7

Output

一行一个整数,代表方案数。
考虑正方形每条边由几条木棍组成,只有1122和1113两种情况,分别枚举统计一下
#include<bits/stdc++.h>
typedef long long i64;
int n,a[],ap=,as[],at[],t[];
i64 ans=,c3[];
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%d",a+i);
std::sort(a+,a+n+);
for(int i=,j=;i<=n;i=j){
int x=a[i];
for(;j<=n&&a[j]==x;++j);
c3[ap]=i64(j-i)*(j-i-)*(j-i-)/;
as[ap]=x;
at[ap++]=j-i;
}
for(int i=;i<=n;++i){
for(int j=;j<ap;++j)if(as[j]>a[i]){
ans+=c3[j]*t[as[j]-a[i]];
}
for(int j=;j<i&&a[i]+a[j]<=;++j)++t[a[i]+a[j]];
}
for(int i=,l,r;i<ap;++i)if(at[i]>=){
i64 s=,s0=,s1;
for(r=i-,l=;r>=l;--r){
for(;r>=l&&as[l]+as[r]<as[i];++l);
if(r<l||as[l]+as[r]!=as[i])continue;
int x=at[l];
if(r==l){
s1=x*(x-)/;
s+=s1*(x-)*(x-)/;
}else{
int y=at[r];
s1=x*y;
s+=s1*(x-)*(y-)/;
}
s+=s0*s1;
s0+=s1;
}
ans+=at[i]*(at[i]-)/*s;
}
printf("%lld\n",ans);
return ;
}

bzoj 4927: 第一题的更多相关文章

  1. BZOJ 3172([Tjoi2013]单词-后缀数组第一题+RMQ)

    3172: [Tjoi2013]单词 Time Limit: 10 Sec   Memory Limit: 512 MB Submit: 268   Solved: 145 [ Submit][ St ...

  2. [算法 笔记]2014年去哪儿网 开发笔试(续)第一题BUG修正

    上一篇的blog地址为:http://www.cnblogs.com/life91/p/3313868.html 这几天又参加了一个家公司的笔试题,在最后的编程题中竟然出现了去哪儿网开发的第一题,也就 ...

  3. 《学习OpenCV》练习题第五章第一题ab

    这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同. 先说下我的做法,a部分 ...

  4. 《学习OpenCV》练习题第四章第一题b&c

    #include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib&q ...

  5. 《学习OpenCV》练习题第四章第一题a

    #include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib&q ...

  6. Google Code Jam 第一题

    通过的第一题,留做纪念,呵呵,非常简单,Africa 2010, Qualification Round: Store Credit. #include <stdio.h> #includ ...

  7. 图论测试题(一)第一题:longest

    第一题:longest 乌托邦有n个城市,某些城市之间有公路连接.任意两个城市都可以通过公路直接或者间接到达,并且任意两个城市之间有且仅有一条路径(What does this imply? A tr ...

  8. ZOJ 2334(Monkey King-左偏树第一题)

    Monkey King Time Limit: 10 Seconds      Memory Limit: 32768 KB Once in a forest, there lived N aggre ...

  9. NOIP2005-普及组复赛-第一题-陶陶摘苹果

    题目描述 Description 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳 ...

随机推荐

  1. bzoj1464

    题解: 简单bfs 显然不能到负数 也不能超过k两倍 代码: #include<bits/stdc++.h> using namespace std; ; int b[N],vis[N], ...

  2. 去除字符串中的emoji字符

    对于使用utf8编码的mysql数据库来说,如果字符串中存在emoji小图像,是不能存进数据库中的,查了一下,原因大概是因为utf8编码可以存1-3个字节的字符,但是emoji是4个字节:解决方法可以 ...

  3. L236

    The Norwegian Authority for Investigation of Economic and Environmental Crime (Okokrim) said the mov ...

  4. <xsd:import>

    最近研究wsdl文件发现在生成客户端代码时报错了, WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=OTHE ...

  5. Vue.js 源码学习笔记 - 细节

     1. this._eventsCount = { }    这是为了避免不必要的深度遍历: 在有广播事件到来时,如果当前 vm 的 _eventsCount 为 0, 则不必向其子 vm 继续传播该 ...

  6. tp 邮件发送

    1.需要phpmail邮件发送包, 2.邮件发送函数function sendMail($to, $title, $content){ require_once('./PHPMailer_v5.1/c ...

  7. 子域名爆破&C段查询&调用Bing查询同IP网站

    在线子域名爆破 <?php function domainfuzz($domain) { $ip = gethostbyname($domain); preg_match("/\d+\ ...

  8. echarts折线图个性化填充、线条、拐点样式

    由于每组数据的拐点样式.线条颜色都不一样,所以series里的每组数据都需要单独设置样式. 首先先来看一下完成后的效果吧 具体设置如下 series: [ { name:systemName[0], ...

  9. HTTP之get post

    1.什么是URL URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位置,互联网上的每个资源都有一个 ...

  10. ZOJ2345Gold Coins

    昨天做过一样的题: 平方和公式:n*(n+1)*(2n+1)/6 #include<cstdio> #include<cstdlib> #include<iostream ...