POJ3734-Blocks【EGF】
2024-10-16 06:25:57
正题
题目链接:http://poj.org/problem?id=3734
题目大意
用思种颜色给\(n\)个格子染色,要求前两种颜色出现偶数次,求方案。
\(1\leq T\leq 100,1\leq n\leq 10^9\)
解题思路
反正是\(\text{EGF}\)的十分入门题了。
首先是\(\sum_{i=0}^{\infty}\frac{x^i}{i!}=e^x\)。
这题带标号计数所以求的是
\[(\sum_{i=0}^\infty\frac{x^{2i}}{2i!})^2\times (\sum_{i=0}^\infty\frac{x^i}{i!})^2
\]
\]
嗯,后面那个就是\(e^x\),前面那个怎么搞。
考虑点花里胡哨的东西,\(e^{-x}=\sum_{i=0}^\infty (-1)^i\frac{x^i}{i!}\),然后我们就有
\[\sum_{i=0}^\infty\frac{x^{2i}}{2i!}=\frac{e+e^{-x}}{2}
\]
\]
然后带进式子就是
\[(\frac{e^x+e^{-x}}{2})^2\times e^{2x}=\frac{e^{4x}+2e^{2x}+1}{4}
\]
\]
然后\(e^{ax}=\sum_{i=0}^{\infty}a^i\frac{x^i}{i!}\),所以展开一下项就是
\[[x^n]=\frac{4^n+2^n\times 2}{4}=4^{n-1}+2^{n-1}
\]
\]
时间复杂度\(O(T\log n)\)
code
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int P=10007;
int n,T;
int power(int x,int b){
int ans=1;
while(b){
if(b&1)ans=ans*x%P;
x=x*x%P;b>>=1;
}
return ans;
}
int main()
{
scanf("%d",&T);
while(T--){
scanf("%d",&n);n--;n%=(P-1);
printf("%d\n",(power(2,n)+power(4,n))%P);
}
}
最新文章
- Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!)
- win下修改mysql默认的字符集以防止乱码出现
- [常见问题]在Linux下执行Redis命令不起作用.
- Spring MVC 相关资料整理
- JDBC-java访问数据库
- Spring集成memcached的详细介绍
- hbm.xml支持的类型
- 详解Android ActionBar之一:ActionBar概述与创建
- MapReduce Shuffle And Sort
- 配置Tomcat
- Shell 初步学习
- Shell命令-文件及目录操作之touch、tree
- 20155228 2017-5-10 课堂测试:MySort
- 大数据新手之路三:安装Kafka
- [LeetCode] 96. Unique Binary Search Trees(给定一个数字n,有多少个唯一二叉搜索树) ☆☆☆
- ASP.NET 日志组件Smart.LogNet.DLL 引用即可写入日志及读取日志
- 关联Left Outer Join的第一条记录
- ValueError: update only works with $ operators
- python的list()列表数据类型的方法详解
- [转]四种π型RC滤波电路
热门文章
- [转]用C++实现插件体系结构
- FileUtils常用方法 - commons-io常用工具类
- blog.mzywucai.club停站
- SpringCloud升级之路2020.0.x版-24.测试Spring Cloud LoadBalancer
- go协程调度
- Spring Cloud总结
- 六、Abp vNext 基础篇丨文章聚合功能上
- 学习小计: Kaggle Learn Embeddings
- Linux centos7 复制,移动,删除文件或文件夹
- Mybatis(四)——