Codeforces 10D LCIS 找出最长公共子和产量增加这个序列 dp
主题链接:点击打开链接
意甲冠军:
特定n长序列
给定k长序列
求LCIS并输出这个子序列
如有多解输出随意解。。
= - = 敲的时候听着小曲儿pre的含义还没有想清楚,万万没想到就过了。。。
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<set>
#include<vector>
#include<map>
#include<math.h>
#include<string>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define N 505
int a[N],s[N];
int n, k;
int dp[N][N];
int pre[N][N][2];
int is[N][N];
vector<int>G;
int main(){
int i,j,co;
while(~scanf("%d",&n)){
G.clear();
for(i=1;i<=n;i++)scanf("%d",&a[i]);
scanf("%d",&k);
for(i=1;i<=k;i++)scanf("%d",&s[i]);
memset(dp, 0, sizeof dp);
memset(pre, 0, sizeof pre);
memset(is, 0, sizeof is);
for(i=1;i<=n;i++) {
int maxx = 0;
int x = 0, y = 0;
for(j=1;j<=k;j++)
{
dp[i][j] = dp[i-1][j];
if(a[i]>s[j] && maxx < dp[i-1][j]) {
maxx = dp[i-1][j];
if(is[i-1][j])
x = i-1, y = j;
else {
x = pre[i-1][j][0];
y = pre[i-1][j][1];
}
}
if(a[i]==s[j]) {
is[i][j] = 1;
dp[i][j] = maxx + 1;
if(is[x][y])
pre[i][j][0] = x, pre[i][j][1] = y;
else {
pre[i][j][0] = pre[x][y][0];
pre[i][j][1] = pre[x][y][1];
}
continue;
}
if(is[i-1][j])
pre[i][j][0] = i-1, pre[i][j][1] = j;
else {
pre[i][j][0] = pre[i-1][j][0];
pre[i][j][1] = pre[i-1][j][1];
}
}
}
int ans = 0;
int x = n, y = k;
for(i=1;i<=k;i++)if(ans<dp[n][i]){
ans = dp[n][i];
x = n, y = i;
}
printf("%d\n",ans);
if(!ans)continue;
while(x+y) {
if(is[x][y])G.push_back(a[x]);
int x1 = pre[x][y][0];
int y1 = pre[x][y][1];
x = x1 , y = y1;
}
for(i=G.size()-1; i>=0; i--){
printf("%d",G[i]);
i?printf(" "):puts("");
}
}
return 0;
}
/*
2
1 2
3
1 2 3 */
Codeforces 10D LCIS 找出最长公共子和产量增加这个序列 dp的更多相关文章
- C#中的字符串处理——找出最长数字子串
百度测试部2015年10月份的面试题之——字符串处理,找出最长的子串. 代码如下: private static string SelectNumberFromString(string input) ...
- hdu 1595 find the longest of the shortest【最短路枚举删边求删除每条边后的最短路,并从这些最短路中找出最长的那条】
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others) Memory Limit: 32768/32768 ...
- 最长(大)回文串的查找(字符串中找出最长的回文串)PHP实现
首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串.比如:上海自来水来自海上,bob等等. 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc, ...
- FCC JS基础算法题(3):Find the Longest Word in a String (找出最长单词)
题目描述: 在句子中找出最长的单词,并返回它的长度.函数的返回值应该是一个数字. 基本思路,将字符串转换成数组,然后得出数组中单个元素的长度,对长度进行排序,返回最大的一个 代码: function ...
- javascript实现:在N个字符串中找出最长的公子串
'use strict' module.exports = function 找出最长公子串 (...strings) { let setsOfSubstrings = [] strings.redu ...
- 输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)
首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用Scanner获取要输入的个数,最终找到的个数也不固定,我们可以封装两个方法,并且返回值类型为数组. 我遇到的 ...
- 给出两个单词(start和end)与一个字典,找出从start到end的最短转换序列
问题 给出两个单词(start和end)与一个字典,找出从start到end的最短转换序列.规则如下: 一次只能改变一个字母 中间单词必须在字典里存在 例如: 给出 start = "hit ...
- 41.找出所有和为S的连续正数序列
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和, 他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数). 没多久,他就得到 ...
- leetcode 5 :Longest Palindromic Substring 找出最长回文子串
题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...
随机推荐
- php用空格代替标点符号
php作为常规赛的符号替换为空格 <? php $character = "!@#$%^&*于'纸'纸'文().,<>|[]'\":;}{-_+=? /a ...
- 在win8.1 64位系统+cocos2d-x2.2.3下搭建android交叉编译环境
搭建前须要下载的软件包(默认已搭建好cocos2d-x而且可在VS上执行,本人VS版本号为2013): 1:java 下载地址:http://www.java.com/zh_CN/download/m ...
- hdu4705 Y 简单树形DP 2013多校训练第十场 J题
题意:求一棵树中不在一条链中的三个点的对数. 转化一下,用总对数减去在一条链上的三点对数即可. 考虑经过根节点,然后可能是不同的子树中各选一个:或者是子树中选一个,然后当前节点为根的子树以外的节点选一 ...
- OCP读书笔记(22) - 题库(ExamB)
101.Identify two situations in which you can use Data Recovery Advisor for recovery. (Choose two.) A ...
- Android经常使用的布局类整理(一)
Android经常使用的布局类整理 近期又回头做了一下android的项目,发觉越来越不从心,非常多东西都忘了,简单的页面布局也非常多写不出来,首先还是先整理一下一些会混淆的概念先 layout_wi ...
- 苹果公司的新的编程语言 Swift 高级语言()两--基本数据类型
一 . 常量和变量 Swift语言 对常量和变量的声明进行了明白的区分 Swift语言的常量类型比C 语言的constants类型更加强大,语义更加明白. 常量和变量的差别是常量在设置或初始化后 ...
- matlab配置Libsvm 防止备忘录
1 首先我们要下载一个Libsvm 工具箱 其中,这一切都可以被下载到 2 我们解包 我解压在桌面上 住址C:\Users\Administrator\Desktop\libsvm 3打开matlab ...
- Unity+NGUI打造网络图片异步加载和本地缓存工具(一)
我们已经开发了在移动终端中,异步网络图片被装入多,在unity其中尽管AssetBundle存在,通常第一个好游戏的资源,然后加载到现场,但也有很多地方可以使用异步网络加载图像以及其缓存机制. 我也写 ...
- c#中 ==与equals有什么区别
对于值类型.引用类型来说比较过程怎样的? using System;using System.Collections.Generic;using System.Text; namespace Cons ...
- Apache conf文件配置个人总结
其实说到conf文件的配置,网上那必定是大堆大堆的,故今儿写着篇小博文,也只是做个总结,至于分享的价值吗,如果对屏幕前的你有用,我也很乐意啦. 首先,我们要找到Apache安装目录,我的是Ap ...