FFT

代码

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<complex>
using namespace std;
const int N = ;
const double PI = acos(-1.0);
typedef complex<double> Comp;
Comp a[N],b[N];
int len,l,n,i,v,c[N];
long long ans[N];
double Ans,nn;
void Rader(Comp *F,int len)
{
int j = len >> ;
for (int i=;i<len-;i++)
{
if (i<j) swap(F[i],F[j]);
int k = len>>;
while (j >= k)
{
j -= k;
k >>= ;
}
if (j < k) j += k;
}
}
void FFT(Comp *F,int len,int on)
{
Rader(F,len);
for (int h=;h<=len;h<<=)
{
Comp wn(cos(-on**PI/h),sin(-on**PI/h));
for (int j=;j<len;j+=h)
{
Comp w(,);
for (int k=j;k<j+h/;k++)
{
Comp u = F[k];
Comp t = w*F[k + h / ];
F[k] = u + t;
F[k + h / ] = u - t;
w = w * wn;
}
}
}
if (on == -)
for (int i=;i<len;i++)
F[i]/=len;
}
void Conv(Comp *a,Comp *b,int len)
{
FFT(a,len,);
FFT(b,len,);
for (int i=;i<len;i++)
a[i] =a[i]*b[i];
FFT(a,len,-);
for (int i=;i<len;i++)
ans[i]=a[i].real()+0.5;
}
int main()
{
int test;
scanf("%d",&test);
while (test)
{
test--;
scanf("%d",&n);
l=;
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for (i=;i<=n;i++)
{
scanf("%d",&v);
c[i]=v;
int q=a[v].real()+;
a[v].real(q);
b[v].real(q);
l=max(l,v);
}
len=;
while (len<=l*) len*=;
Conv(a,b,len);
for (i=;i<=n;i++)
ans[c[i]+c[i]]--;
for (i=;i<len;i++)
ans[i]/=;
for (i=;i<len;i++)
ans[i]=ans[i-]+ans[i];
sort(c+,c++n);
nn=n;
Ans=;
for (i=;i<=n;i++)
Ans+=(ans[len-]-ans[c[i]]-(nn-)-(nn-i)*(i-)-(nn-i)*(nn-i-)/);
printf("%.7lf\n",Ans/(nn*(nn-)*(nn-)/));
}
}

hdu4609 3-idiots的更多相关文章

  1. [HDU4609]3-idiots(生成函数+FFT)

    3-idiots Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. HDU4609 & FFT

    关于这道题请移步kuangbin爷的blog:http://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html 感觉我一辈子也不能写出这么 ...

  3. HDU4609 3-idiots(母函数 + FFT)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4609 Description King OMeGa catched three men wh ...

  4. bzoj 3513: [MUTC2013]idiots FFT

    bzoj 3513: [MUTC2013]idiots FFT 链接 bzoj 思路 参考了学姐TRTTG的题解 统计合法方案,最后除以总方案. 合法方案要不好统计,统计不合法方案. \(a+b< ...

  5. bzoj千题计划168:bzoj3513: [MUTC2013]idiots

    http://www.lydsy.com/JudgeOnline/problem.php?id=3513 组成三角形的条件:a+b>c 其中,a<c,b<c 若已知 两条线段之和=i ...

  6. bzoj 3513 [MUTC2013]idiots FFT 生成函数

    [MUTC2013]idiots Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 806  Solved: 265[Submit][Status][Di ...

  7. idiots

    idiots 题目描述 给定 $n$ 个长度分别为 $a_i$ 的木棒,问随机选择 $3$ 个木棒能够拼成三角形的概率. 输入格式 第一行一个正整数 nn. 第二行 nn 个正整数,第 ii 个数表示 ...

  8. BZOJ 3513: [MUTC2013]idiots

    3513: [MUTC2013]idiots Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 476  Solved: 162[Submit][Stat ...

  9. HDU-4609(FFT/NTT)

    HDU-4609(FFT/NTT) 题意: 给出n个木棒,现从中不重复地选出3根来,求能拼出三角形的概率. 计算合法概率容易出现重复,所以建议计算不合法方案数 枚举选出的最大边是哪条,然后考虑剩下两条 ...

  10. HDU4609 FFT+组合计数

    HDU4609 FFT+组合计数 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4609 题意: 找出n根木棍中取出三根木棍可以组成三角形的概率 题解: ...

随机推荐

  1. int a=5,则 ++(a++)的值是?

    编译出错:++(a++)先计算的是括号里的(a++),返回的结果是一个表达式,其值是5,不能对表达式进行赋值

  2. zepto源码--定义变量--学习笔记

    主要了解一下zepto定义的初始变量. 逐一以自己的理解解析,待到后面完全透彻理解之后,争取再写一遍zepto源码学习的文章. 其中的undefined确实不明白为什么定义这么个变量在这里. docu ...

  3. 转:Asp.net Mvc4默认权限详细(上)

    前言 上篇的菜鸟去重复之Sql的问题还没有得到满意的答案.如果哪位大哥有相关的资料解释,能够分享给我,那就太谢谢了. 以后每发表一篇博文我都会将以前遗留的问题在前言里指出,直到解决为止. 本文主要在于 ...

  4. git 初次使用

    其实知道git很久了,也一度看了不少资料来学习指令.但是一直不明白到底我该咋办,我最疑惑的地方在于,本地代码是如何存储到远程服务器上的,那些指令在什么环境下执行,其实主要是目录问题.就是我在git s ...

  5. Four Operations---hdu5938(暴力)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5938 题意:给一个不超过20位并且大于2位的数字字符串(只包含1-9)然后找到适当的位置依次放入&qu ...

  6. Selenium2学习-012-WebUI自动化实战实例-010-解决元素失效:StaleElementReferenceException: stale element reference: element is not attached to the page document

    元素失效的想象提示信息如下图所示,此种问题通常是因为元素页面刷新之后,为重新获取元素导致的. 解决此类问题比较简单,只需要在页面刷新之后,重新获取一下元素,就可以消除此种错误了. 以下以易迅网搜索为例 ...

  7. JSON.stringify初识

    1.JSON.stringify()简介: JSON.stringify()这个函数是用来序列化对象的,即是把对象类型转换成json类型. 它有三个参数,即JSON.stringify(value [ ...

  8. Condition

    1.Condition是个接口,其实现类是同步器里面的一个内部静态类:ConditionObject. 2.Lock是个接口,该接口里面有个方法是:Condition newCondition(); ...

  9. No mapping found for HTTP request with URI [] in DispatcherServlet with name 'appServlet'

    项目是使用SpringMVC (1)在浏览器中访问,后台总报错: No mapping found for HTTP request with URI [] in DispatcherServlet ...

  10. Java工具类(获取当前主机操作系统名)

    package com.fly.jenkins.util; /** * 操作系统类: 获取System.getProperty("os.name")对应的操作系统 * * @aut ...