子数列(双向dp)

子数列(子数列(双向dp)) Description 现在有一个数列,需要你求得该数列满足下述要求的最长子数列。子数列要求:这个子数列可以被分成前后两个部分,且两部分共同拥有一个数列项(即前一部分的最后一个数列项和后一部分的第一个数列项是同一个数列项);子数列的前一部分各项要严格递增,后一部分各项要严格递减。例如,数列 1 4 6 5 2 1 可以分成 1 4 6 和 6 5 2 1 这两部分。他们都含有数列项 6 ,且前者各项严格递增,后者各项严格递减。 请你编写程序回答,对一个数列最少剔除几项,就可使剩下的各项组成的子数列满足上述的要求。 Input 输入数据有若干组。...
程序 | 2011-01-09 20:49 | 阅读 1603 次 | 评论 0 条

集合

已知一个集合,包含一,若有包含x,则2*x+1以及3*x+1也被包含在里面,编写一个程序按客户要求输出从小到大排列的所要元素! #include<iostream>using namespace std;int a[10000000];int main(){ int i,two,three; a[0]=1; two=three=0; for(i=1;i<10000000;i++) { if(a[two]*2+1<a[three]*3+1) a[i]=a[two++]*2+1; else if(a[two]*2+...
程序 | 2011-01-09 20:46 | 阅读 848 次 | 评论 0 条

滑雪(动态规划)

滑雪 (动态规划) Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。...
程序 | 2011-01-03 22:40 | 阅读 2348 次 | 评论 0 条
浏览29765次