HDU 5707 Combine String(动态规划)】的更多相关文章

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5707 题意: 给你三个字符串 S1, S2, S3, 让你判断 S3 是否恰好由字符串 S1 和 S2组成, S1 为 S3 的子串, S2 也为 S3 的子串, 可以不连续. 思路: 设 dp[i][j] 表示字符串 S3 的前 i + j 位是否可以由字符串 S1 的前 i 位以及字符串 S2 的前 j 位组成. dp[i][j] = 1 表示可以, dp[i][j] = 0 则表示不可以. 则…
题意:给定三个字符串,问你第三个是不是由第一个和第二个组成的. 析:当时比赛是没有做出来啊...一直WA,就是没有判断长度,第一个和第二个和是不是和第三个一样,这个忘记... 我们用d[i][j]表示第一个字符串匹配到 i, 第二个匹配到第 j 个,然后只要判断能不能由上一个得到就好.这个主要是d[i][j]==1则表示可以成功匹配 d[i][j]==0则表示无法成功匹配,那么剩下的就简单了. 代码如下: #include <cstdio> #include <string> #i…
Combine String HDU - 5707 题目大意:给你三个串a,b,c,问a和b是不是恰好能组成c,也就是a,b是不是c的两个互补的子序列. 根据题意就可以知道对于c的第一个就应该是a第一个或者b的第一个,如果第一个是a的第一个,那么c的第二个就应该是a的第二个或者是b的第一个,反之也是一样的.那么我们定义dp[i][j]就是a串匹配到i位置,b串匹配到j位置的合理性,那么dp[i][j]就由dp[i-1][j]和dp[i][j-1]推过来,a串匹配到i位置,b串匹配到j位置,那么c…
HDU 4054 Number String 思路: 状态:dp[i][j]表示以j结尾i的排列 状态转移: 如果s[i - 1]是' I ',那么dp[i][j] = dp[i-1][j-1] + dp[i-1][j-2] + .. + dp[i-1][1] 如果s[i - 1]是‘D’,那么dp[i][j] = dp[i-1][j] + dp[i-1][j+1] + ... + dp[i-1][i] 用前缀和处理出sum[i][j]就不用dp[i][j]了 代码: #include<bits…
今天用Unity5.5.1开发提取Assets目录的模块,使用时采用System.IO.Path.Combine(string, string, string, string)函数进行路径生成 明明是公有函数,为何会报错,奇了怪了 有谁知道什么原因?欢迎交流 ....... ... 重新打开了一下 ,可以了.版本原因…
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8553    Accepted Submission(s): 3283 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休…
Warcraft Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 957    Accepted Submission(s): 487 Problem Description Have you ever played the Warcraft?It doesn't matter whether you have played it !We…
动态规划的解决方法是找到动态转移方程. 题目地址:http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=3&sectionid=2&problemid=4 题目大意:找到一个最多的老鼠序列,使得序列中的老鼠的体重满足递增,相应老鼠的速度满足递 减.即可要求找出老鼠体重递增,速度递减的最长子序列(不需要连续). 思路:动态转移方程的确定,状态f[i]表示前i个老鼠中的最长递减子序列长度,状态转移方程为mouse[i].len…
题目: Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = "aabcc",s2 = "dbbca", When s3 = "aadbbcbcac", return true.When s3 = "aadbbbaccc", return false. 这个题目值得记录的原因除了自…
本题是一个经典的动态规划题. 直接利用记忆化搜索:见图解 Ac code : #include<stdio.h> #include<string.h> #define max(i,j) (i>j?i:j) #define maxn 105 int a[maxn][maxn]; int d[maxn][maxn]; int s(int i,int j,int n) { if(d[i][j]>=0)return d[i][j]; return d[i][j]=a[i][j]…