hdu 1503 记忆化搜索+递归输出+标记前驱
来源:互联网 发布:绘图设计软件 编辑:程序博客网 时间:2024/06/05 15:24
速度比stl版本快很多,0秒过...
#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include <string>#define MAX 107using namespace std;int dp[MAX][MAX];//string s[MAX][MAX];struct Pre{ int x , y; char c;}pre[MAX][MAX];char s1[MAX] , s2[MAX];void dfs ( int i , int j ){ if ( dp[i][j] != -1 ) return; if ( i== 0 && j== 0 ) { dp[i][j] = 0; pre[i][j].x = -1; pre[i][j].y = -1; pre[i][j].c = 0; return; } if ( i >= 1 && j >= 1 && s1[i] == s2[j] ) { if ( dp[i-1][j-1] == -1 ) dfs ( i-1 , j-1 ); if ( dp[i][j] != -1 && dp[i][j] > dp[i-1][j-1] + 1 ) dp[i][j] = dp[i-1][j-1]+1 , pre[i][j].x=i-1 , pre[i][j].y=j-1, pre[i][j].c = s1[i]; else if ( dp[i][j] == -1 ) dp[i][j] = dp[i-1][j-1], pre[i][j].x=i-1 , pre[i][j].y=j-1; pre[i][j].c = s1[i]; } if ( i>=1 && dp[i-1][j] == -1 ) dfs ( i-1 , j ); if ( j>=1 && dp[i][j-1] == -1 ) dfs ( i , j-1 ); if ( i>=1 && ( dp[i][j] > dp[i-1][j]+1||dp[i][j] == -1 ) ) dp[i][j] = dp[i-1][j]+1, pre[i][j].x = i-1 , pre[i][j].y = j, pre[i][j].c = s1[i]; if ( j>=1 && ( dp[i][j] > dp[i][j-1]+1||dp[i][j] == -1 ) ) dp[i][j] = dp[i][j-1]+1 , pre[i][j].x = i , pre[i][j].y = j-1, pre[i][j].c = s2[j];}void print ( int x , int y ){ if ( pre[x][y].x == -1 ) return; print ( pre[x][y].x , pre[x][y].y ); printf ( "%c" , pre[x][y].c );} int main ( ){ while ( ~scanf ( "%s" , s1+1 ) ) { scanf ( "%s" , s2+1 ); int len1 = strlen (s1+1); int len2 = strlen (s2+1); memset ( dp , -1 , sizeof ( dp ) ); dfs ( len1 , len2 ); print ( len1 , len2 ); puts ( "" ); }}
0 0
- hdu 1503 记忆化搜索+递归输出+标记前驱
- 递归+记忆化搜索
- HDU 1579 记忆化搜索(递归+动态规划)
- 【记忆化搜索】HDU
- hdu 4597 dp+前缀和+记忆化搜索
- hdu 4628 Pieces(状态压缩+记忆化搜索)
- hdu 1503 + 简单dp ( 最长公共子序列型)+记忆化搜索+stl
- hdu 1069 记忆化搜索
- 记忆化搜索 HDU 1158
- hdu 1078记忆化搜索
- hdu 1078 记忆化搜索
- hdu 2437 (记忆化搜索)
- hdu 1260(记忆化搜索)
- hdu 1142 记忆化搜索
- Hdu 4597记忆化搜索
- HDU 1078 记忆化搜索
- HDU 3336 记忆化搜索
- hdu 1142 记忆化搜索
- Combining Qt Widgets and QML with QWidget::createWindowContainer()
- 网站安全 Spring MVC防御CSRF、XSS和SQL注入攻击
- LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址
- HDU1081
- 条件查询按时间段查询
- hdu 1503 记忆化搜索+递归输出+标记前驱
- 如何在SpringMVC中获取request对象
- cocos2d-x 字体描边CCRenderTexture glBlendFunc
- Intent传递非基本类型的值
- 关于Redis的常识
- LeetCode100——Same Tree
- Smallest Regular Polygon - UVa 12300 几何
- 基于OAUTH的电子商务支付集成研究与实现
- Python-MySQL-2