51nod1202-递推&规律
来源:互联网 发布:电子处方软件 编辑:程序博客网 时间:2024/05/17 23:58
计数dp
记得减去空集。。。
#include <iostream>#include <cstdio>#include <cstring>/*我觉得我该学一下 组合数学了。。规律就是如果包含空集的话,那么dp[i]=dp[i-1]*2;//1个元素是俩,空集和本身当长度为i时,总共 pow(2,i) 并且每一个元素占 pow(2,i-1)个。*/using namespace std;typedef long long ll;const int maxn=1000006;const ll mod=1000000007;ll dp[maxn];int mark[maxn];int a[maxn];int main(){ int m ; while(~scanf("%d",&m)){ for(int i=1;i<=m;i++){ scanf("%d",&a[i]); } memset(mark,0,sizeof(mark)); memset(dp,0,sizeof(dp)); dp[0]=1; //mark[a[1]]=1; //printf("%lld\n",mod); for(int i=1;i<=m;i++){ if(!mark[a[i]]) {dp[i]=(dp[i-1]*2)%mod;mark[a[i]]=i; // cout<<dp[i]<<endl; } else{ dp[i]=((dp[i-1]*2)%mod-(dp[mark[a[i]]-1]+mod)%mod)%mod; mark[a[i]]=i; } } dp[m]--; /*for(int i=1;i<=m;i++) printf("%lld\n",dp[i]);*/ printf("%lld\n",(dp[m]+mod)%mod); } return 0;}
阅读全文
0 0
- 51nod1202-递推&规律
- 51nod1202(递推)
- 51nod1202 dp+递推
- 找规律 递推
- 递归 递推 规律
- 51Nod1202子序列个数
- 【51Nod1202】子序列个数
- HDU2058 找规律+递推
- 【51Nod1202】子序列个数(简单dp)
- 51nod1202【DP-树状数组维护】
- FZU2037 Maximum Value Problem 规律 + 递推
- hdu2077--汉诺塔IV(递推规律)
- URAL 1225-Flags(规律递推)
- POJ 3517 找规律、递推
- uva 11040 规律递推(水)
- hdu6129Just do it(递推规律)
- hdu6222(递推规律+java大数)
- sicily 1370 How many 0's? 递推 规律
- 查找数组里的指定元素
- 前端面试篇2017-6-26
- fastjson 转换long型报错
- 康托展开
- 技术学习
- 51nod1202-递推&规律
- 删除数组里的指定元素
- 09_ARM汇编自学笔记指令系统之数据处理指令
- 《Advanced Bash-scripting Guide》学习(八):从一个目录移动整个目录树到另一个目录
- vue-resource POST请求 报400错误解决方案
- schroot的安装与使用
- Activity的非正常销毁
- 修改数组里的指定元素的内容
- 天气预报静态页面代码