LIS/LCS
文章平均质量分 54
ramay7
Life is not short,but float.
展开
-
HDU 1503 Advanced Fruits(还原最长公共子序列、记录路径)
题目链接: HDU 1503 Advanced Fruits 题意: 给出两个水果的名称字符串,字符个数不超过100100,要求输出一个合并的名称,两个水果的名字都是合并的名称的子序列,输出合并后的名称,多解时输出任意解。 分析: 主要是找出最长公共子序列所选的字母在第一个串中或第二个串中的位置。而且这些字母都是相同的,根据dp[]dp[]状态转移方程: s1[i]=s2[j]时:dp[原创 2016-07-23 11:41:30 · 840 阅读 · 0 评论 -
HDU 1087 Super Jumping! Jumping! Jumping!(求最大上升子序列和)
题目链接; HDU 1087 Super Jumping! Jumping! Jumping! 题意: 求最大上升子序列和。 数据范围:n≤1000n\leq 1000 分析: 用dp[i]dp[i]表示以ii为结尾的最大上升子序列和。那么 dp[i]=max(dp[i],dp[j]+data[i])(j<i且data[j]<data[i]dp[i]=max(dp[i],dp[j]+d原创 2016-07-21 10:22:10 · 422 阅读 · 0 评论 -
HDU 1003 Max Sum(最长连续子序列和)
题目链接; HDU 1003 Max Sum 题意: 求最长连续子序列和,并输出子序列的起始和终止位置。 数据范围:n≤105,−1000≤每个数≤103n\leq 10^5,-1000\leq 每个数\leq 10^3。 多解时,输出第一个序列的起始和终止位置。 分析: 直接看代码吧。 用sumsum记录当前连续子序列的和,当sum<0sum<0和sum>anssum>ans时需要原创 2016-07-21 00:42:28 · 596 阅读 · 0 评论 -
POJ 2533 Longest Ordered Subsequence(最长上升子序列长度、O(nlogn))
题目链接: POJ 2533 Longest Ordered Subsequence 题意; 求最长上升子序列长度。 数据范围:n≤1000n\leq 1000 分析: 直接用O(nlog(n))O(nlog(n))的方法,在数组中二分查找并替换,使得最长上升子序列的“潜力”更大。#include <iostream>#include <cstdio>#include <cstrin原创 2016-07-20 23:30:14 · 474 阅读 · 0 评论 -
Codeforce----Sorting Railway Cars(LIS/O(nlogn))
An infinitely long railway has a train consisting of n cars, numbered from 1 to n (the numbers of all the cars are distinct) and positioned in arbitrary order. David Blaine wants to sort the railway原创 2015-12-18 10:33:57 · 1129 阅读 · 0 评论 -
Codeforces 629 D Finals in arithmetic(最大上升子序列和,O(nlogn)、线段树/树状数组)
题目链接: Codeforces 629 D Finals in arithmetic 题意: 已知nn块圆柱形蛋糕的底面圆半径和高,需要利用这些蛋糕尽可能堆成一个体积最大的蛋糕,但是需要满足:编号大的蛋糕只能放在编号比它小的蛋糕上面或者桌子上上面蛋糕的体积必须严格大于下面蛋糕的体积求最终堆成的蛋糕的最大体积? 数据范围:1 ≤ n ≤ 100 000,ri≤104,hi≤1041 \原创 2016-07-25 10:52:21 · 635 阅读 · 0 评论 -
POJ 1088 滑雪(最长下降子序列)
题目链接:POJ 1088题意:给一个二维数组,每个数组元素是一个整数表示高度,每次从一个点可以上下左右四个方向移动,但是必须是高度下降方向,问最长的下降长度是多少?例如:25->24->23->......->3->2->1,长度是25.分析:求最长下降子序列问题。使用DP+递归。DP状态转移方程://DP[i][j]表示从(i,j)位置出发的最长下降子序列DP[i]原创 2015-12-24 11:27:05 · 418 阅读 · 0 评论 -
UVA 10635 Prince and Princess(最长公共子序列转为最长上升子序列)
题目链接: UVA 10635 Prince and Princess 题意: 给n,p,qn,p,q表示接下来两行会给p+1p+1和q+1q+1个数。每个数都不超过n∗nn*n,且每行的数字各不相同,所以p和qp和q也满足:1≤p,q<n1\leq p,q < n。求两个序列最长的上升的数字相同的公共子序列的长度。 数据范围:2≤n≤2502\leq n \leq 250 分析: 最长原创 2016-07-21 00:27:35 · 524 阅读 · 0 评论 -
UVA 111 History Grading(题意杀,最长公共子序列)
题目链接: UVA 111 History Grading 题意: 【题意杀!】 先给出nn个事件的正确发生时间顺序,在给出一些学生排出来的时间发生时间顺序,有两种得分方式; 在相应的时间点发生事件相同则得1分 可以得到的分数等于发生事件的相对时间顺序正确的最长长度求按照第二种方式可以获得的得分? nn范围:2≤n≤202\leq n \leq 20denotes the rank原创 2016-07-23 15:59:02 · 544 阅读 · 0 评论 -
HDU 4352 数位dp
求区间内最大上升子序列为k的数字个数。 题目链接HDU 4352 XHXJ’s LIS题意把一个数字从左到右(从高位到低位)看成一个序列,求区间[L,R][L,R]内序列的最大上升子序列长度为KK的数字个数。数据范围:0<L≤R<263−1,1≤K≤100< L\leq R < 2^{63} - 1,1\leq K\leq 10分析把高位数字状压成最多是111111111(9个1)的二进制数,然原创 2016-09-02 16:16:15 · 592 阅读 · 0 评论