博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「POJ3734」Blocks
阅读量:7087 次
发布时间:2019-06-28

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

「POJ3734」Blocks

题意

\(n\)个盒子和红,蓝,绿,黄四种颜色。使用这四种颜色对盒子进行染色,其中红色和绿色的数量必须为偶数,询问方案数

Solution

易知此题可以用指数型生成函数解决

对于红色和绿色,其\(EGF\)

\[G_e(x)=1+\frac{x^2}{2!}+\frac{x^4}{4!}+\frac{x^6}{6!}\dots=\frac{e^x+e^{-x}}{2}\]

蓝色和黄色的\(EGF\)

\[G_e(x)=1+\frac{x^2}{2!}+\frac{x^3}{3!}+\frac{x^4}{4!}\dots=e^x\]

乘起来可得

\[(\frac{e^x+e^{-x}}{2})^2*e^{2x}\]

\[=\frac{e^{4x}+2e^{2x}+1}{4}\]

我们知道\(\sum_{i=0}^{\infty}\frac{k^ix^i}{i!}=e^{kx}\)\(n\)次项的系数为\(\frac{k^n}{n!}\)

忽略常数项,回带可得

\[\frac{4^n+2\times 2^n}{4n!}\]

乘上阶乘即为答案

\[\frac{4^n+2\times 2^n}{4}\]

Code

#include 
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;template
void read(T &t){ t=0;int f=0;char c=getchar(); while(!isdigit(c)){f|=c=='-';c=getchar();} while(isdigit(c)){t=t*10+c-'0';c=getchar();} if(f)t=-t;}const int mod=10007;int T;int n;int fastpow(int a,int b){ int re=1,base=a; while(b) { if(b&1) re=re*base%mod; base=base*base%mod; b>>=1; } return re;}int main(){ read(T); while(T--) { read(n); printf("%d\n",(fastpow(4,n)+fastpow(2,n+1))%mod*fastpow(4,mod-2)%mod); } return 0;}

转载于:https://www.cnblogs.com/lizbaka/p/10639690.html

你可能感兴趣的文章
《Vim实用技巧(第2版)》——2.3 构造可重复的修改
查看>>
恢复高考这些年,关于高考的老照片
查看>>
首届开放科学奖|6个创造性案例示范如何玩转医学大数据
查看>>
《软件功能测试自动化实战教程》—第6章6.4节Action测试输入的参数化
查看>>
如何通过简单的3步恢复Windows 7同时删除Ubuntu
查看>>
网站建设设计前端开发需要学习html和div+css
查看>>
认知应用:大数据的下个转折点
查看>>
jQuery编程的最佳实践
查看>>
《移动优先与响应式Web设计》一下册 序
查看>>
《自己动手做交互系统》——2.3 制作过程
查看>>
《响应式Web设计性能优化》一2.2 追踪Web性能的工具
查看>>
《精益创业UX篇——高效用户体验设计》一第一篇:验证
查看>>
《Spring攻略(第2版)》——1.11 用XML配置自动装配Bean
查看>>
真的超赞!用systemd命令来管理linux系统!
查看>>
Tomcat7.0.26的连接数控制bug的问题排查
查看>>
《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.4 微格式
查看>>
《面向机器智能的TensorFlow实践》安装TensorFlow10
查看>>
《你必须知道的495个C语言问题》一第1章 声明和初始化(1.1-1.20)
查看>>
如何在 Ubuntu 上安装 FireFox 15
查看>>
SQL Server FullText解决Like字句性能问题
查看>>