题面

https://www.lydsy.com/JudgeOnline/problem.php?id=4909

题解

目前为止仅仅在LOJ上A掉这道题(Loj真快!)

当然不是标准做法

显然我们只要求一个

然后$a^n$的系数就表示选n个的方案数

那么我们找到

然后$a^n$的系数就表示选n个的概率

FFT即可

按理说这东西只能过60分但是LOJ的评测机成功过掉...而且时限4秒最慢一个点只用3秒!!!

Code

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll; ll read(){
ll x=,f=;char c=getchar();
while(c<'' || c>''){if(c=='-')f=-;c=getchar();}
while(c>='' && c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
const int maxn=;
struct Complex{
double re,im;
Complex(){
re=im=;
}
Complex(double alpha){
re=cos(alpha);
im=sin(alpha);
}
Complex(double _re,double _im){
re=_re;
im=_im;
}
Complex operator + (const Complex &x){
return Complex(re+x.re,im+x.im);
}
Complex operator - (const Complex &x){
return Complex(re-x.re,im-x.im);
}
Complex operator * (const Complex &x){
return Complex(re*x.re-im*x.im,re*x.im+im*x.re);
}
Complex operator += (const Complex &x){
return *this=*this+x;
}
Complex operator *= (const Complex &x){
return *this=*this*x;
}
} A[maxn],B[maxn]; int fft_lst,poly_rev[maxn];
inline void fft_init(int n){
if(fft_lst==n) return;
fft_lst=n;
for(int i=,j=n>>;i+<n;i++){
poly_rev[i]=j;
int k=n>>;
while(j>=k){
j-=k;
k>>=;
}
j+=k;
}
} inline void poly_fft(Complex *a,int len,bool f){
fft_init(len);
for(int i=;i+<len;i++)
if(i<poly_rev[i]) swap(a[i],a[poly_rev[i]]);
for(int i=;i<len;i<<=){
Complex off((f ? -acos(-1.0) : acos(-1.0))/i);
for(int j=;j<len;j+=i<<){
Complex cur();
for(int k=j;k<j+i;k++,cur*=off){
Complex x=a[k+i]*cur;
a[k+i]=a[k]-x;
a[k]+=x;
}
}
}
if(f){
for(int i=;i<len;i++)
a[i].re/=len;
}
} int tc; int main(){
#ifdef LZT
freopen("in","r",stdin);
#endif
tc=read();
while(tc--){
int x=read(),y=read();
int mx=x*y,len=;
while(len<mx) len<<=;
for(int i=;i<len;i++)
A[i]=B[i]=Complex();
for(int i=;i<x;i++)
A[i].re=1.0/x;
poly_fft(A,len,false);
for(int i=;i<len;i++){
int nw=y;
B[i]=Complex(,);
while(nw){
if(nw&) B[i]*=A[i];
A[i]*=A[i];
nw>>=;
}
}
poly_fft(B,len,true);
for(int i=;i<len;i++)
B[i].re+=B[i-].re;
for(int i=;i<=;i++){
int l=read(),r=read();
printf("%.8lf\n",B[r].re-(l?B[l-].re:));
}
}
return ;
}

bzoj 4909 [Sdoi2017]龙与地下城的更多相关文章

  1. BZOJ.4909.[SDOI2017]龙与地下城(正态分布 中心极限定理 FFT Simpson积分)

    BZOJ 洛谷 https://www.luogu.org/blog/ShadowassIIXVIIIIV/solution-p3779# 正态分布 正态分布是随机变量\(X\)的一种概率分布形式.它 ...

  2. 洛谷P3779 [SDOI2017]龙与地下城(概率论+Simpson+FFT)

    题面 传送门 题解 orz shadowice 正态分布 正态分布是随机变量\(X\)的一种概率分布形式.它用一个期望\(\mu\)和方差\(\sigma^2\)就可以描述,记为\(N(\mu,\si ...

  3. LOJ2267 SDOI2017 龙与地下城 FFT、概率密度函数、Simpson

    传送门 概率论神仙题-- 首先一个暴力做法是设\(f_{i,j}\)表示前\(i\)个骰子摇出点数和为\(j\)的概率,不难发现DP的过程是一个多项式快速幂,FFT优化可以做到\(O(XYlog(XY ...

  4. (WA)BZOJ 4821: [Sdoi2017]相关分析

    二次联通门 : BZOJ 4821: [Sdoi2017]相关分析 2017.8.23 Updata 妈妈!!这道题卡我!!!就是不然我过!!!!! #include <cstdio> # ...

  5. [BZOJ 4820] [SDOI2017] 硬币游戏(高斯消元+概率论+字符串hash)

    [BZOJ 4820] [SDOI2017] 硬币游戏(高斯消元+概率论+字符串hash) 题面 扔很多次硬币后,用H表示正面朝上,用T表示反面朝上,会得到一个硬币序列.比如HTT表示第一次正面朝上, ...

  6. BZOJ:4820: [Sdoi2017]硬币游戏&&BZOJ:1444: [Jsoi2009]有趣的游戏(高斯消元求概率)

    1444: [Jsoi2009]有趣的游戏 4820: [Sdoi2017]硬币游戏 这两道题都是关于不断随机生成字符后求出现给定字符串的概率的问题. 第一题数据范围较小,将串建成AC自动机以后,以A ...

  7. BZOJ:4816: [Sdoi2017]数字表格

    4816: [Sdoi2017]数字表格 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 501  Solved: 222[Submit][Status ...

  8. BZOJ.4820.[SDOI2017]硬币游戏(思路 高斯消元 哈希/AC自动机/KMP)

    BZOJ 洛谷 建出AC自动机,每个点向两个儿子连边,可以得到一张有向图.参照 [SDOI2012]走迷宫 可以得到一个\(Tarjan\)+高斯消元的\(O((nm)^3)\)的做法.(理论有\(6 ...

  9. BZOJ.4821.[SDOI2017]相关分析(线段树)

    BZOJ LOJ 洛谷 恶心的拆式子..然后就是要维护\(\sum x_i,\ \sum y_i,\ \sum x_iy_i,\ \sum x_i^2\). 操作三可以看成初始化一遍,然后同操作二. ...

随机推荐

  1. python实现斐波那契查找

    通过在网上找教程解释和看书,总结出一套比较简单易懂的代码实现. 斐波那契查找和二分查找一样,针对的是有序序列,在此前提下: # 先创建一个Fibonacci函数 fib = lambda n: n i ...

  2. ExtJs学习笔记(1)---ExtJs安装及其使用

    从官网下载了ExtJs的3.2版本号的SDK,包括了代码依赖的具体说明.文档.范例和其它文件.当中,adapter和resources文件是Ext正常执行所必须的,其它的仅在开发过程中使用到. Ada ...

  3. 20170223-问题001,增强中的E消息 显示为 S模式消息,

     MM01 的屏幕增强,里面写的      MESSAGE e056(z1) WITH '供应链计划(SCP) 储备物料与当期物料不能同时选择.'.可是现实出来是S 消息模式,这是为什么?系统转换了吗 ...

  4. STM32低功耗模式与烟雾报警器触发信号电路设计

    1.STM32的3种低功耗模式 STM32有3种低功耗模式,分别是睡眠模式.停机模式和待机模式. 2.STM32在不同模式下的电流消耗 a.工作模式  消耗电流在27mA至36mA之间. b.睡眠模式 ...

  5. oracle case where 复杂sql语句

    update hr_user u set u.is_approve=(case when u.curr_org_id in (select t.org_id from hr_organization ...

  6. 在U-Boot中添加自定义命令以实现自动下载程序【转】

    本文转载自:https://gaomf.cn/2016/06/26/%E5%9C%A8U-Boot%E4%B8%AD%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9 ...

  7. AjaxControlToolkit没有通过WebResource.axd加载css导致ajaxToolkit:TabPanel无法显示正确的样式

    https://stackoverflow.com/questions/3318092/what-is-webresource-axd WebResource.axd provides access ...

  8. IntelliJ IDEA 注册码 有效期截止于2018/10/14

    来源: http://idea.lanyus.com/ IntelliJ IDEA 注册码: EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW ...

  9. 一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  10. NOIP2004题解

    传送门 考查题型 dp 搜索 模拟 数据结构堆 贪心 T1   津津的储蓄计划 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和 ...