poj 2127 LCIS 带路径输出
这个题 用一维 为什么错了; 因为 用一维 dp 方程肯定也是一维;但是有没有想,第 i 个字符更新了 j 位置的最优结果,然后 k 字符又一次更新了 j 位置的最优值,然后 我的结果是 i 字符更新的结果; 但被覆盖了 所以错了; 不如用一个二维数组 表示 地 i 个字符放进去匹配另一个字符的 j 位置的最优值是由那个位置传递过来的;
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
using namespace std; vector<int>vv;
int num1[],num2[],dp[][];
struct date{ int x,y; }path[][];
void update( int x,int y ){
if( !x || !y )return ;
update( path[x][y].x,path[x][y].y );
if( num1[x] == num2[y] )cout<<num1[x]<<" ";
}
int main( )
{
int N,M,T;
while( scanf("%d",&N) != EOF )
{
for( int i = ; i <= N; i++ )scanf("%d",&num1[i]);
scanf("%d",&M);
for( int i = ; i <= M; i++ )scanf("%d",&num2[i]);
memset( dp,,sizeof(dp) );vv.clear();
memset( path,,sizeof(path) );
for( int i = ; i <= N; i++ )
{
int Max = ; int pos = ;
for( int j = ; j <= M; j++ )
{
if( num1[i] > num2[j] && dp[i-][j] > Max ){
Max = dp[i-][j];
pos = j;
}
if( num1[i] == num2[j] ){
dp[i][j] = Max + ;
path[i][j].x = i-; path[i][j].y = pos;
}else {
dp[i][j] = dp[i-][j];
path[i][j].x = i-; path[i][j].y = j;
}
}
}
int res = ;
for( int i = ; i <= M; i++ )
if( dp[N][i] > res )res = dp[N][i];
bool fell = false; cout<<res<<endl;
for( int i = ; i <= M; i++ )
if( dp[N][i] == res )
{ update( N,i ); break; }
}
return ;
}
poj 2127 LCIS 带路径输出的更多相关文章
- [POJ] 1606 Jugs(BFS+路径输出)
题目地址:http://poj.org/problem?id=1606 广度优先搜索的经典问题,倒水问题.算法不需要多说,直接BFS,路径输出采用递归.最后注意是Special Judge #incl ...
- Floyd最短路(带路径输出)
摘要(以下内容来自百度) Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似. 该算法名称以创始人之一.1978年图灵奖获得者. ...
- Pots(POJ - 3414)【BFS 寻找最短路+路径输出】
Pots(POJ - 3414) 题目链接 算法 BFS 1.这道题问的是给你两个体积分别为A和B的容器,你对它们有三种操作,一种是装满其中一个瓶子,另一种是把其中一个瓶子的水都倒掉,还有一种就是把其 ...
- ACM学习之路___HDU 1385(带路径保存的 Floyd)
Description These are N cities in Spring country. Between each pair of cities there may be one trans ...
- java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用
java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用 import java.io.BufferedReader; import java.io.BufferedWrite ...
- Python_服务器与多客户端通信、UDP协议、pycharm打印带颜色输出、时间同步的机制
1.服务器与多客户端通信 import socket # 创建tcp socket的套接字 sk = socket.socket() # bind sk.bind(('127.0.0.1',8080) ...
- crontab 任务带日期输出
date命令用法#带格式输出$ date +"%Y-%m-%d"#输出1天后的日期$ date -d "1 day" +"%Y-%m-%d" ...
- 【CH5104】I-country 线性dp+路径输出
pre:在网格中,凸多边形可以按行(row)分解成若干段连续的区间 [ l , r ] ,且左端点纵坐标的值(col)满足先减后增,右端点纵坐标先增后减. 阶段:根据这个小发现,可以将阶段设置成每一行 ...
- URAL 1004 Sightseeing Trip(floyd求最小环+路径输出)
https://vjudge.net/problem/URAL-1004 题意:求路径最小的环(至少三个点),并且输出路径. 思路: 一开始INF开大了...无限wa,原来相加时会爆int... 路径 ...
随机推荐
- hdu 4068 SanguoSHA
搜索下就可以了…… 代码如下: #include<iostream> #include<cstring> #include<cstdio> #include< ...
- JavaScript基础(一)
我是一个初学者,但求能学到些许知识!以下是根据韩顺平老师的<轻松搞定网页设计html+css+javascript—javascrip部分>整理而成. 为什么要学习javascript? ...
- springmvc的mvc:view-controller标签
1.重定向 <mvc:view-controller path="/" view-name="redirect:/admin/index"/> 即如 ...
- StructLayout特性(转)
StructLayout特性 StructLayout特性 公 共语言运行库利用StructLayoutAttribute控制类或结构的数据字段在托管内存中的物理布局,即类或结构需要 ...
- java 语法错误 (操作符丢失) 在查询表达式
遇到的详细问题: a[0]="11"; a[1]="2223"; a[2]="333"; sta.executeUpdate("i ...
- 网络安装之Redhat衍生版
GNU/Linux开源,这个意义实在是非常的广泛,目前在distrowatch上表现活跃的300个发行版代表了GNU/Linux的主流,然而细心的Linux爱好者会发现CentOS-based dis ...
- 关闭Centos写磁盘功能
一个Linux文件默认有3个时间.atime:对此文件的访问时间. ctime:此文件inode发生变化的时间. mtime:此文件的修改时间. 如果有多个小文件(比如Web服务器的页面上有多个小图片 ...
- HDU 4629 Burning 几何 + 扫描线
总体思路参考了 这里. 细节:1.控制精度,虽然这题没卡精度,不过还是要控制一下. 之前 bool operator<( const Point& A, const Point& ...
- php mysql_insert_id()
mysql_insert_id mysql_insert_id()返回给定的 link_identifier中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号.如果没有指 ...
- javascript 中$符号是代表什么意思!
$符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的 1. 首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asda ...