博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Two
阅读量:5165 次
发布时间:2019-06-13

本文共 1981 字,大约阅读时间需要 6 分钟。

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 1533    Accepted Submission(s): 676

 

Problem Description
Alice gets two sequences A and B. A easy problem comes. How many pair of sequence A' and sequence B' are same. For example, {1,2} and {1,2} are same. {1,2,4} and {1,4,2} are not same. A' is a subsequence of A. B' is a subsequence of B. The subsequnce can be not continuous. For example, {1,1,2} has 7 subsequences {1},{1},{2},{1,1},{1,2},{1,2},{1,1,2}. The answer can be very large. Output the answer mod 1000000007.
 

 

Input
The input contains multiple test cases.
For each test case, the first line cantains two integers 
N,M(1N,M1000). The next line contains N integers. The next line followed M integers. All integers are between 1 and 1000.
 

 

Output
For each test case, output the answer mod 1000000007.
 

 

Sample Input
3 2 1 2 3 2 1 3 2 1 2 3 1 2
 

 

Sample Output
2 3
 

 

题意:

求公共子序列数量。

 

dp[i][j]表示第一个串考虑到i位,第二个串考虑到j位的答案是多少。

那么dp[i][j] = dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1] ,需要特别判断a[i]=b[j]时,dp[i][j]+=dp[i-1][j-1]+1。

 

附AC代码:

1 #include
2 using namespace std; 3 4 const int pr=1000000007; 5 6 int dp[2010][2010]; 7 int a[2010],b[2010]; 8 9 int main(){10 int n,m;11 while(cin>>n>>m){12 for(int i=1;i<=n;i++){13 for(int j=1;j<=m;j++){14 dp[i][j]=0;15 }16 }17 for(int i=1;i<=n;i++){18 cin>>a[i];19 }20 for(int i=1;i<=m;i++){21 cin>>b[i];22 }23 for(int i=1;i<=n;i++){24 for(int j=1;j<=m;j++){25 dp[i][j]=dp[i][j-1]+dp[i-1][j]-dp[i-1][j-1];26 if(a[i]==b[j])27 dp[i][j]+=dp[i-1][j-1]+1;28 if(dp[i][j]<0)29 dp[i][j]+=pr;30 if(dp[i][j]>=pr)31 dp[i][j]%=pr;32 }33 }34 cout<
<

 

转载于:https://www.cnblogs.com/Kiven5197/p/5745529.html

你可能感兴趣的文章
九度0J 1374 所有员工年龄排序
查看>>
微信小程序图片使用示例
查看>>
Ubuntu16.04+cuda8.0rc+opencv3.1.0+caffe+Theano+torch7搭建教程
查看>>
GitHub 优秀的 Android 开源项目
查看>>
CentOS 网络设置修改
查看>>
二分图
查看>>
python小白-day5 random模块
查看>>
Git Tips
查看>>
2019春第一次课程设计报告
查看>>
msp430项目编程13
查看>>
用Python3实现的Mycin专家系统简单实例
查看>>
TortoiseSVN tutorial
查看>>
poj-2376 Cleaning Shifts (排序+贪心)
查看>>
在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值)...
查看>>
1.开发准备
查看>>
centos su命令
查看>>
CLR:基元类型、引用类型和值类型
查看>>
dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决...
查看>>
jQuery中的事件绑定的几种方式
查看>>
泥塑课
查看>>