FZU Problem 2129 子序列个数
2013-10-09 21:30
232 查看
看了 dp 方程之后应该是妙懂
每次 加入一个数,×2 然后剪掉重复的; 重复的个数 维前面那个数,,,,,
View Code
每次 加入一个数,×2 然后剪掉重复的; 重复的个数 维前面那个数,,,,,
#include<iostream> #include<stdio.h> #include<cstring> #include<algorithm> #include<cmath> #define mod 1000000007 using namespace std; long long dp[1123456],pre[1123456]; int main( ) { int N; while( scanf("%d",&N) != EOF ) { memset( pre,0,sizeof( pre) ); memset( dp,0,sizeof(dp) ); int now; scanf("%d",&now); dp[1] = 1; pre[now] = 1; for( int i = 2; i <= N; i++ ) { int now; scanf("%d",&now); dp[i] = (((dp[i-1]*2)%mod) - dp[pre[now]-1]); if( !pre[now] )dp[i] += 1; pre[now] = i; dp[i] += mod; dp[i] %= mod; } printf("%lld\n",dp ); } return 0; }
View Code
相关文章推荐
- fzu Problem 2129 子序列个数
- fzu—— Problem 2129 子序列个数
- FZUProblem 2129 子序列个数(dp)
- FZU 2129 子序列个数
- FZU 2215 Simple Polynomial Problem 多项式模拟 表达式树
- fzu——Problem 2125 简单的等式
- FZU Problem 1926 填空(KMP好题一枚,确实好)
- 贪心 FZU 2013 A short problem
- fzu - Problem 1759 Super A^B mod C
- FZU Problem 2271 X(Floyd)
- (fzu)Problem I Magic(模拟+后缀匹配)
- FZU 2215 Simple Polynomial Problem (多项式乘法 栈)
- Problem 1410 变位词 from http://acm.fzu.edu.cn/problem.php?pid=1410
- FZU Problem 1901 Period II
- FZU-Problem 2150 Fire Game
- fzu Problem 2127 养鸡场
- FZU 1432 Problem 1432 Coin Changing(多重背包变形DP)
- FZU Problem 2102 Solve equation
- fzu2218 Simple String Problem
- FZU 2218 Simple String Problem (状压DP解决集合不相同元素问题)