2018.12.30 poj3734 Blocks(生成函数)
传送门
生成函数入门题。
按照题意构造函数:
对于限定必须是出现偶数次的颜色:1+x22!+x44!+...=ex+e−x21+\frac {x^2}{2!}+\frac {x^4}{4!}+...=\frac{e^x+e^{-x}}21+2!x2+4!x4+...=2ex+e−x
对于无限定的颜色:1+x1!+x22!+...=ex1+\frac x{1!}+\frac{x^2}{2!}+...=e^x1+1!x+2!x2+...=ex
因此最终的生成函数SET(x)=e2x∗(ex+e−x2)2=e4x+2e2x+14SET(x)=e^{2x}*(\frac{e^x+e^{-x}}2)^2=\frac{e^{4x}+2e^{2x}+1}4SET(x)=e2x∗(2ex+e−x)2=4e4x+2e2x+1
而我们要求的就是xix^ixi的系数。
根据泰勒展开式:
ekxe^{kx}ekx的展开式中xnx^nxn对应的系数是knk!\frac{k^n}{k!}k!kn
因此出现的方案数为4n+2n+14n!\frac{4^n+2^{n+1}}{4n!}4n!4n+2n+1
由于每种方案有n!n!n!种排列方式,因此最终答案就是4n+2n+14\frac{4^n+2^{n+1}}444n+2n+1
代码:
#include<iostream>
#include<cstdio>
using namespace std;
const int mod=10007;
int T,n;
inline int ksm(int a,int p){int ret=1;for(;p;p>>=1,a=a*a%mod)if(p&1)ret=ret*a%mod;return ret;}
int main(){
	scanf("%d",&T);
	while(T--)scanf("%d",&n),cout<<((ksm(2,n+1)+ksm(4,n))%mod)*2502%mod<<'\n';
	return 0;
}
2018.12.30 poj3734 Blocks(生成函数)的更多相关文章
- 2018.12.30【NOIP提高组】模拟赛C组总结
		2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ... 
- 2018.12.30 bzoj3027: [Ceoi2004]Sweet(生成函数+搜索)
		传送门 生成函数好题. 题意简述:给出n个盒子,第iii个盒子里有mim_imi颗相同的糖(但不同盒子中的糖不相同),问有多少种选法可以从各盒子中选出数量在[a,b][a,b][a,b]之间的糖果. ... 
- 2018.12.30 bzoj3028: 食物(生成函数)
		传送门 生成函数模板题. 我们直接把每种食物的生成函数列出来: 承德汉堡:1+x2+x4+...=11−x21+x^2+x^4+...=\frac 1{1-x^2}1+x2+x4+...=1−x21 ... 
- POJ3734 Blocks(生成函数)
		题意 链接 长度为\(n\)的序列,用红黄蓝绿染色,其中红黄只能是偶数,问方案数 Sol 生成函数入门题 任意的是\(e^x\),偶数的是\(\frac{e^x + e^{-x}}{2}\) 最后化完 ... 
- 2018.12.30 洛谷P4238 【模板】多项式求逆
		传送门 多项式求逆模板题. 简单讲讲? 多项式求逆 定义: 对于一个多项式A(x)A(x)A(x),如果存在一个多项式B(x)B(x)B(x),满足B(x)B(x)B(x)的次数小于等于A(x)A(x ... 
- 2018.12.30 Intellij IDEA设置main方法自动补全
		Eclipse与 Intellij IDEA设置方法自动补全 1.首先,点击File-->Settings-->Editor-->Live Templates 设置你想输出的模板 右 ... 
- 2018.12.1 Test
		目录 2018.12.1 Test A 串string(思路) B 变量variable(最小割ISAP) C 取石子stone(思路 博弈) 考试代码 B C 2018.12.1 Test 题目为2 ... 
- 2018.12.08【NOIP提高组】模拟B组总结(未完成)
		2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ... 
- 2015.12.29~2015.12.30真题回顾!-- HTML5学堂
		2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停 ... 
随机推荐
- STL-stack和顺序栈实现括号匹配
			2018-11-11-14:28:31 1.顺序栈 下面是我用数组实现的顺序栈,包含的函数有出入栈,查看栈顶元素,栈的大小,栈是否空等函数,当栈空间不够用时,对应的数组会自动增长. /******** ... 
- 创建React组件
			组件概述 组件可以将UI切分成一些独立的.可复用的部件,这样你就只需专注于构建每一个单独的部件. 组件从概念上看就像是函数,它可以接收任意的输入值(称之为“props”),并返回一个需要在页面上展示的 ... 
- [剑指Offer]59-队列的最大值(题目二待补)
			题目一:滑动窗口的最大值 题目链接 https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788?tpId=13&tqI ... 
- sqlserver判断字段是否存在更改字段
			use naire go if COL_LENGTH('options','optionsGroup') is null begin--options为表名,optionsGroup为列名 alter ... 
- java实现rabbitMQ延时队列详解以及spring-rabbit整合教程
			在实际的业务中我们会遇见生产者产生的消息,不立即消费,而是延时一段时间在消费.RabbitMQ本身没有直接支持延迟队列功能,但是我们可以根据其特性Per-Queue Message TTL和 Dead ... 
- iOS 组件化流程详解(git创建流程)
			[链接]组件化流程详解(一)https://www.jianshu.com/p/2deca619ff7e 
- POPUP_TO_CONFIRM的使用方法
			CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TEXT_QUESTION = '是否要打印凭证!' ... 
- vss登录invalid handle问题的解决办法
			VSS登录出现“invalid handle” 原因:网络验证. 解决方法: 1.打开控制面板:选择“用户帐户和家庭安全” 2.选择凭据管理器: 3.添加Windows 凭据 这一步特别重要: (1) ... 
- c# 24种设计模式4建造者模式(Builder)
			先来一个例子 建造者接口 public interface IBuilder { void CreateLogo(); void CreateBody(); void CreateWheel(); v ... 
- 关系测试# 或 print(s2-s)Python    集合
			1集合是一个无序的,不重复的数据组合,它的主要作用如下(set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在set中,没有重复的key): 去重,把一个列表变成 ... 
