当前位置: 首页 > news >正文

P6078 [CEOI 2004] Sweets

题意

给定 \(n\) 种球,第 \(i\) 种球有 \(m_i\) 个,你现在要在第 \(i\) 种球中选择 \(n_i\le m_i\) 个,使得 \(a\le\sum n_i\le b\),答案对 \(2004\) 取模。

\(n\le 10,m_i\le 10^6,b\le 10^7\)

分析

入门生成函数题。

将第 \(i\) 种球的取球方案写成生成函数的形式:

\[F(x)=1+x+x^2+\cdots+x^m,xF(x)+1-x^{m+1}=1+x+x^2+\cdots+x^m \]

\[F(x)=\dfrac{1-x^{m+1}}{1-x} \]

而最终的答案多项式显然 \(G=\prod F_i=\dfrac{\prod_i (1-x^{m_i+1})}{(1-x)^n}\)

由于 \(n\) 只有 \(10\),所以分子可以 dfs \(O(2^n)\) 暴力展开。分母用广义二项式定理展开:

\[(1-x)^{-n}=\sum_{i\ge 0}\dbinom{-n}{i}(-1)^ix^i=\sum_{i\ge 0}\dfrac{(n+i-1)!}{i!(n-1)!}(-1)^{i}(-1)^ix^i=\dbinom{n+i-1}{n-1}x^i \]

那么枚举分子的某一项 \(x^k\),设它的系数是 \(f_k\),那么这一项对答案的贡献就是 \(f_k\sum_{i=a-k}^{b-k}\binom{n+i-1}{n-1}=f_k(\binom{n+b-k}{n}-\binom{n+a-k-1}{n})\)

问题转化为求组合数。然而,模数 \(2004\) 并非质数,虽然可以 exLucas 求解,但我们有另外一种做法:

\[\dbinom{n+b-k}{n}=\dfrac{(n+b-k)!}{n!(b-k)!}=\dfrac{(b-k+1)(b-k+2)\cdots(b-k+n-1)(b-k+n)}{n!} \]

而我们有如下结论:若 \(b|a\),则 \(\dfrac{a}{b}\bmod p=\dfrac{a\bmod(p*b)}{b}\)

那么,由于 \(n\) 只有 \(10\),所以完全可以套用这个结论,算上面这东西模 \(2004\cdot n!\) 的结果后在除掉 \(n!\),单次算上面这个东西的复杂度是 \(O(n)\) 的,所以最终总复杂度是 \(O(2^nn)\)

int n,a,b,m[11];
int p,fac;
int ans;
int C(int x,int y){if(x<y||y<0)return 0;int res=1;rep(i,y+1,x)res=res*i%p;res/=fac;return res%mod;
}
void dfs(int step,int k,int fir){if(step==n+1){int res=(C(n+b-k,b-k)-C(n+a-k-1,a-k-1)+mod)%mod;adder(ans,res*fir%mod);return;}dfs(step+1,k,fir);dfs(step+1,k+m[step]+1,mod-fir);
}
inline void solve_the_problem(){n=rd(),a=rd(),b=rd();fac=1;rep(i,1,n)m[i]=rd(),fac*=i;p=mod*fac;dfs(1,0,1);write(ans);
}
http://www.sczhlp.com/news/39238/

相关文章:

  • 你真的对你自己好吗
  • 南通网站建设入门产品推广运营方案
  • 贵州企业展示型网站建设广告外链购买平台
  • 民非企业网站建设费怎么记账如何做好平台推广
  • 如何建设和优化一个网站搜索关键词分析
  • 即墨做网站的seo系统培训
  • 兖州建设局网站百搜网络科技有限公司
  • 中卫网站建设公司营销推广方法有哪些
  • 做网站哪一部分用到Java广州百度提升优化
  • ppt做视频的模板下载网站有哪些推广的几种方式
  • 九江网站建设公司宁波网站建设公司哪家好
  • ps网页设计教程及素材郑州有没有厉害的seo
  • 多产品网站怎么做企业网站网站快速排名优化哪家好
  • 构建动态网站营销推广方式都有哪些
  • 语音识别技术在英语学习中的创新应用
  • Earth Preta混合合法与恶意组件规避检测技术分析
  • 辛集网站建设手机网页设计制作网站
  • 资源类网站怎么做的营销推广策划方案范文
  • 静态网站怎么做电子商务seo
  • 网站设计与制作是什么专业如何网页优化
  • 做外贸推广的网站有哪些什么推广方式能快速引流
  • 深圳装修公司排名前十seo值怎么提高
  • 哪家做的濮阳网站建设网站建设多少钱
  • 中山网站推广风云榜百度
  • 淘宝客做网站推广长沙seo网络公司
  • 网站收录后然后怎么做seo如何挖掘关键词
  • 很多网站开发没有框架如何制作的seo优化实训总结
  • thinkphp做视频网站seo基础教程
  • 想花钱做网站怎么做无锡做网站的公司
  • Wordpress始于四川二级站seo整站优化排名