uva 10069 Distinct Subsequences 【dp+大数】
来源:互联网 发布:win10安装不了软件 编辑:程序博客网 时间:2024/06/06 02:17
题目:uva 10069 Distinct Subsequences
题意:给出一个子串 x 和母串 s ,求子串在母串中的不同序列的个数?
分析:定义dp【i】【j】:x 的前 i 个字母在 s 的前 j 个字母中的出现次数;
dp [ i ] [ j ] = dp [ i ] [ j - 1 ] ;
if ( x[ i ] == s [ j ] )
dp[i][j]=add(dp[i-1][j-1],dp[i][j]);
注意点:1:出现次数非常大,要用大数加法
2::注意初始化
AC代码:
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include <map>#include <cmath>#include <vector>#include <algorithm>using namespace std;const int N = 10050;string dp[105][N];string sum(string s1,string s2){if(s1.length()<s2.length()){string temp=s1;s1=s2;s2=temp;}int i,j;for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--){s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0)); //注意细节if(s1[i]-'0'>=10){s1[i]=char((s1[i]-'0')%10+'0');if(i) s1[i-1]++;else s1='1'+s1;}}return s1;}int main(){ //freopen("Input.txt","r",stdin); int T; scanf("%d",&T); while(T--) { string s,x; cin>>s>>x; string ss="1",xx="2"; ss+=s,xx+=x; for(int i=0;i<xx.size();i++) dp[i][0]="0"; for(int i=0;i<ss.size();i++) dp[0][i]="1"; for(int i=1;i<xx.size();i++) { for(int j=1;j<ss.size();j++) { dp[i][j]=dp[i][j-1]; if(xx[i]==ss[j]) dp[i][j]=sum(dp[i-1][j-1],dp[i][j]); //cout<<i<<" "<<j<<" "<<dp[i][j]<<endl; } } cout<<dp[xx.size()-1][ss.size()-1]<<endl; } return 0;}
0 0
- uva 10069 - Distinct Subsequences(大数相加+DP)
- uva 10069 Distinct Subsequences(DP + 大数相加)
- uva 10069 Distinct Subsequences(dp,大数加法)
- UVa 10069 Distinct Subsequences(大数+DP)
- UVa 10069 Distinct Subsequences(大数 DP)
- uva 10069 Distinct Subsequences 【dp+大数】
- UVA 10069 ---Distinct Subsequences +DP+大数
- uva 10069 Distinct Subsequences (dp + 大数)
- UVa 10069 Distinct Subsequences 简单dp+java大数
- Uva-10069 Distinct Subsequences DP
- UVA 10069 Distinct Subsequences(DP)
- dp+高精度 uva-10069-Distinct Subsequences
- UVA 10069 Distinct Subsequences(dp + 高精度)
- Distinct Subsequences - UVa 10069 dp+高精度
- Distinct Subsequences+uva+经典dp
- uva 10069 Distinct Subsequences
- UVA 10069 Distinct Subsequences
- UVa 10069 - Distinct Subsequences
- [ACM] hdu 5001 Walk (概率DP)
- U盘安装Ubuntu 14.04 LTS正式版
- 申请堆空间时出现的错误
- 反射机制
- 《数据结构》信管1133班和1134班同学链接
- uva 10069 Distinct Subsequences 【dp+大数】
- VMWare虚拟机下CentOS 配置网络实现远程连接,提供Web访问
- SQL——select语句的三种基本用法:连接,嵌套,exists
- 【网络流基础】hdu 1532 Drainage Ditches
- wpa_supplicant, wpa_cli用法
- Sublime Text 2搭建Go开发环境(Windows)
- js中询问是否要删除
- linux串口通信协议编程详解
- 动态规划状态压缩题解