题意:求限定起始位置的二维最长递增子序列.解题思路:直接DP解题代码: 1 // File Name: 4d.cpp 2 // Author: darkdream 3 // Created Time: 2014年08月04日 星期一 19时24分49秒 4 5 #include 6 #...
分类:
其他好文 时间:
2014-08-05 00:18:48
阅读次数:
294
题意:给你一个数n,接下来给你一个矩形体的3边长(即随便你怎么放它,它的高度有可能是3边中的一条边),现在要你求出这n个矩形体能堆成一座塔的最高高度(塔就是面积从店面开始向上严格递增)
思路:动规里的最长子序列的变形,结合了贪心的思想。首先我们需要对你所用的高进行排序,排序之后找出最严格递减的面积就可以了
AC代码:
#include
#include
#include
#include
u...
分类:
其他好文 时间:
2014-08-04 17:57:17
阅读次数:
195
题目链接:点击打开链接
先是计算非递增的方案,
若非递增的方案数为x, 则非递减的方案数也是x
答案就是 2*x - n
只需求得x即可。
可以先写个n3的dp,然后发现规律是 C(n-1, 2*n-1)
然后套个逆元即可。
#include
#include
#include
#include
using namespace std;
#define ll long long
#d...
分类:
其他好文 时间:
2014-08-04 17:42:48
阅读次数:
228
明确了方阵数字是螺旋递增以后,发现每一个“口”字型的一圈数字正好闭合且连续递增。所以解题思路是由“口”字型的 递增依次向内嵌套。先填充最外层“口”字型的一圈数字,接着填充次外层……最后填充最内层的四...
分类:
其他好文 时间:
2014-08-04 11:17:37
阅读次数:
220
~~~~
由题意可知,因为左边是按1~n的顺序递增排列,要想得到不相交组合,左边后面的一定与相应右边后面的相连,如此一来,
就可以发现其实是一道最长上升子序列的题目,要注意的是N
题目链接:http://poj.org/problem?id=1631
~~~~
nlogn的算法在这里补充一下。
最长不下降子序列的O(nlogn)算法分析如下:
设 A[t]表示序...
分类:
其他好文 时间:
2014-08-03 23:26:56
阅读次数:
364
简单dp题,LIS。不同之处是这里要求得的不是最长的子序列,而是权重和最长的子序列。其实大同小异。
状态数组就是到达每个位置的最大权重。
LIS问题常用解法就是两个:
人人为我
我为人人...
分类:
其他好文 时间:
2014-08-03 23:16:16
阅读次数:
277
有一个正整数序列,求最短的子序列使得其和大于等于S,并输出最短的长度。用数组b[i]存放序列的前i项和,所以b[i]是递增的。遍历终点j,然后在区间[0, j)里二分查找满足b[j]-b[i]≥S的最大的i,时间复杂度为O(nlongn)。这里二分查找用到库函数lower_bound() 1 //#...
分类:
其他好文 时间:
2014-08-02 23:20:54
阅读次数:
269
1 /* 2 题目大意:给你一个序列,不断地将最后边的数值移动到最前边,问最少经过多少次可以变成一个单调递增的序列! 3 如果不能则输出-1。 4 如果该序列按照不断从后向前移动排序成功,那么该序列要么只有一个单调递增的序列, 5 或者有两段单调递增的序列(1..k 和 k+1..n)...
分类:
其他好文 时间:
2014-08-02 09:53:43
阅读次数:
162
动态规划法求最长递增子序列的两种方法,一个是n²,一个是nlgn时间的。...
分类:
其他好文 时间:
2014-08-01 16:03:51
阅读次数:
201
题意 编写一个解码程序 对数字串进行解码
输入第一行是一个解码key key从左到右每个字符分别对应0,00,01,10,000,001,011,100,101,110,0000,0001,...,1101,1110,00000,.......
长度为len的字符编码有2^n-1个 而且恰好以二进制方式从0到2^n-2递增 而且字符编码的最大长度为7 可以有2^7-1=127个字符
我们只需开一个key[len][val]数组 里面存的是长度为len的第val+1个字符编码 然后解...
分类:
其他好文 时间:
2014-08-01 00:11:20
阅读次数:
480