博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4609 3-idiots
阅读量:6813 次
发布时间:2019-06-26

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

问给定n条小木棍 随机选3根构成三角形的概率

看起来和多项式没啥关系对不对 = =

但实际上它的确可以用多项式来做qaq

我们构造多项式f(x)=\sum x^{a_i}

然后自乘一下就能得到两根木棍拼起来的方案数

然后枚举所有拼出来的长度 算一下>=这个长度的木棍个数

求出不能拼成三角形的方案数

然后最后用C(3,n)减一减 除一除就可以了qwq

【注意sum的预处理范围是两倍权值T^T】

附代码。

#include
#include
#include
#include
#define ll long long#define inf 20021225#define db double#define mxn 400010using namespace std;const db pi=acos(-1.0);struct complex{ db x,y; complex(){} complex(db _x,db _y){x=_x,y=_y;}}f[mxn],g[mxn];complex operator +(complex a,complex b){return complex(a.x+b.x,a.y+b.y);}complex operator -(complex a,complex b){return complex(a.x-b.x,a.y-b.y);}complex operator *(complex a,complex b){return complex(a.x*b.x-a.y*b.y,a.x*b.y+b.x*a.y);}int rev[mxn];int init(int n){ int lim=1,l=0; while(lim
>1]>>1)|((i&1)<<(l-1)); return lim;}void fft(complex *a,int n,int f){ for(int i=1;i
i) swap(a[rev[i]],a[i]); for(int k=2;k<=n;k<<=1) { int mid = k>>1; complex Wn=complex(cos(pi/mid),f*sin(pi/mid)); for(int i=0;i

 

转载于:https://www.cnblogs.com/hanyuweining/p/10321900.html

你可能感兴趣的文章
thinkphp5 多图片拖拽上传,自己写的,不足之处请指正~
查看>>
将Unicon字符串转成汉字String C#
查看>>
Centos 6.7 4TB 硬盘LVM 水平扩容
查看>>
maven 与多模块构建
查看>>
ubuntu14.04 配置tomcat8
查看>>
VirtualBox体验及介绍
查看>>
Ubuntu 12.04 下安装 JDK 7
查看>>
1&gt;s.cpp(465) : error C2448: “main”: 函数样式初始值设定项类似函数定义 问题的解决方法...
查看>>
XWifiMouse早期写的一个Android鼠标App
查看>>
postgres预写式日志的内核实现详解-wal记录写入
查看>>
用面向接口编程思想看找对象
查看>>
OC文件操作习题
查看>>
Nginx常用命令
查看>>
TWaver GIS在电信中的使用
查看>>
几款程序员常用的辅助编程工具
查看>>
Python struct处理二进制
查看>>
FlashSwing教你如何布置组件
查看>>
字符串合并
查看>>
spring定时器配置
查看>>
脑机连接——辫子
查看>>