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. NRF51822之app_button使用

    我们现在开始使用app_button,为什么要使用这个来替代直接使用GPIOTE呢? 因为我们在手册中可以看到如果一直开启GPIOTE in模式的需要需要很大电流.所以我们需要使用RTC来“周期”的查 ...

  2. fseek的使用

    一:概述 在官方文档里,对于fseek的描述是 Move to specified position in file,移到文件的某一个特殊位置 二:语法 status = fseek(fileID, ...

  3. gradlew常用命令

    ./gradlew -v 查看版本 ./gradlew clean 清理.下载依赖 ./gradlew build  构建 libgdx项目中的gradlew run: ./gradlew deskt ...

  4. Android开发笔记:SQLite导入导出数据

    SQLite是Android中最方便使用的数据库了,现在看下如何快速的在SQLite中导入导出数据. 首先由于是.NET项目转Android,原有数据库使用的是SQLSERVER,由于项目相同部分结构 ...

  5. CS6破解

    1) 序列号这里为大家生成了两个,可以通过软件验证:1325-0949-2080-9819-3777-32301325-0160-5283-9851-2671-8951 2) 破解补丁安装时会用到,请 ...

  6. 【指标测试】影响IOPS的几个重要因素

    1. 读写方式 顺序读写的IOPS要比随机读写的IOPS高.100%顺序读写来讲,顺序读要高于顺序写.100%随机读写来讲,随机读要高于随机写.小块读写的IOPS要比大块读写高.需要根据实际的应用程序 ...

  7. iis7.5应用程序池模板永久性缓存初始化失败解决方法

    错误: 针对应用程序池的模板永久性缓存初始化失败,这是由以下错误导致的: 无法为应用程序池创建磁盘缓存子目录.数据可能包含其他错误代码. 解决办法如下: 网上搜索的答案全都是修改3个目录的权限,给II ...

  8. LeetCode Search a 2D Matrix II

    原题链接在这里:https://leetcode.com/problems/search-a-2d-matrix-ii/ Write an efficient algorithm that searc ...

  9. ComparatorChain、BeanComparator用法示例(枚举类型排序转)

    工作中遇到按照类的某个属性排列,这个属性是个枚举类型,按照要求的优先级排列. 可以使用ComparatorChain.BeanComparator.FixedOrderComparator实现. 举一 ...

  10. 安装好mysql后允许远程连接

    安装好mysql后允许远程连接 http://blog.sina.com.cn/s/blog_3eba8f1c0100tsox.html http://blog.csdn.net/zxyvb/arti ...