CF Gym 100187D Holidays (数学,递推)
2015-07-19 00:37
323 查看
题意:给n个元素,从n中选两个非空集合A和B。问有多少中选法?
递推:
![](https://images0.cnblogs.com/blog2015/695852/201507/190005388458641.jpg)
dp
表示元素个数为n的方案数,对于新来的一个元素,要么加入集合,要么不加入集合自成一个集合。加入集合有三种选择,A,B,E(可空的集合),或者自成集合,作为A或B,然后在选一个n-1个元素的非空子集(2^n-1 - 1)。
递推:
![](https://images0.cnblogs.com/blog2015/695852/201507/190005388458641.jpg)
dp
表示元素个数为n的方案数,对于新来的一个元素,要么加入集合,要么不加入集合自成一个集合。加入集合有三种选择,A,B,E(可空的集合),或者自成集合,作为A或B,然后在选一个n-1个元素的非空子集(2^n-1 - 1)。
#include<cstdio> const int mod = 1e9+9; typedef unsigned long long ll; int main() { int n; scanf("%d",&n); ll dp = 0;//1 ll tmp = 2; for(int i = 2; i <= n; i++){ dp = (3*dp + (tmp= (tmp<<1)%mod) - 2)%mod; } printf("%lld",dp); return 0; }
相关文章推荐
- MySQL-config-slow
- I/O端口与I/O内存 对外设访问方式
- 任务执行和任务处理的异步执行
- Message、Handler、Message Queue、Looper、Thread之间的关系(未完成)
- 19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写
- JavaScript BOM浏览器对象模型
- CocoaPods安装和使用教程
- String to Integer (atoi)
- Python模块常用的几种安装方式
- Ajax中向Servlet发送请求时中文乱码问题
- 组队选拔赛01 ---- slom
- opencv waitKey()详解
- vs2010使用openCV中的imread读不到图片问题的解决方法
- SQLServer复杂SQL逻辑实现
- iOS内存管理 ARC与MRC
- Spring-02-IOC容器
- 053.Local Variable 代码块局部变量
- 虚函数与多态
- iOS开发——UI基础-屏幕适配
- 面试总结