这道题是已知一些天的股价,需要选定一天买进和一天卖出,得到最大值,可以采用类似于动态规划的做法从后往前遍历,同时记录后面的最大股价,和当前这个点买进时的最大收益,与之前的最大收益取个最大值依次往前递推即可下面是AC的算法这道题的动态规划的思想在于,子问题分解为这个点买进时的收益与后面所有的买进...
分类:
其他好文 时间:
2015-05-19 00:23:46
阅读次数:
137
1. 用递归的方法来解决这个问题2.带记忆的递归(将那些已经计算过的点直接返回值)这里递归的时候,将那些计算过在它之下的最大路径的值保存起来,下次 再用的时候直接查看就可以了#include#include #include using namespace std;#define MAXLINE 1...
分类:
其他好文 时间:
2015-05-18 22:25:34
阅读次数:
173
DescriptionLet's consider one interesting word game. In this game you should transform one word into another through special operations.Let's say we h...
分类:
其他好文 时间:
2015-05-18 18:26:43
阅读次数:
151
一道经典的最长子序列题,不过该题需要维护两个量,体重和速度,所以需要先对一个量进行排序,然后剩下的那个量就可以像处理最长子序列那样做了。 值得一提的是该题需要打印路径,最好的方法是用一个数组pre运用类似链表的结构,来记录路径。 这恰恰就是紫书上数据结构那章例题14中所用的记录最短路路径的方法 。 其中的巧妙和实现细节请读者细细品味。
针对这道题, 由于dp是利用之前计算的结果进行递推得到的,...
分类:
其他好文 时间:
2015-05-18 16:46:49
阅读次数:
122
题意:给出n根高度为1,2,3,---n的杆子,从左边能看到l根,右边能够看到r根,问有多少种可能看的紫书的思路 先假设已经安排好了高度为2---i的杆子,那么高度为1的杆子的放置方法有三种情况放在最左边:从左边看得见,右边看不见放在最右边:从右边看得见,左边看不见放在中间,有i-2个空位可以插,左...
分类:
其他好文 时间:
2015-05-18 16:33:53
阅读次数:
279
问题:
此题主要是一个递推算法,审题要仔细,小母牛是自它被生下开始第四年开始产子,递归公式为n=a(n-1)+(n-3).
之前看过别人的算法用了大数,其实没必要,在范围内int就可以装下。
母牛的故事
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Tot...
分类:
编程语言 时间:
2015-05-18 13:02:49
阅读次数:
326
上次西安网络赛的题了
刚开始始终构造不出递推矩阵,后来想通了。。
当我们存放递推值的矩阵是竖条的时候,我们要把该矩阵放在乘法的右端,而横条的时候放在左端。。。根据矩阵乘法的原理,这样构造递推矩阵的时候就非常简单了,把对应值放上去就行了。。。
#include
#include
using namespace std;
typedef long long ll;
typedef vector...
分类:
其他好文 时间:
2015-05-18 09:05:31
阅读次数:
110
最近在学习矩阵快速幂,以前还觉得快速幂挺难写的,现在看来真的是好简单了。。毕竟以前菜
把我们要递推的数放在一个矩阵里,然后构造一个递推矩阵进行矩阵乘法。。。
#include
#include
using namespace std;
typedef long long ll;
const int mod=1e9+7;
typedef vector vec;
typedef vector m...
分类:
其他好文 时间:
2015-05-18 09:04:42
阅读次数:
109
C#有统一的类型系统,所有的类型包括原始类型(int,bool,short,long等类型)都继承于Object类。Java略不同,它的原始类型不是继承于Object,每个原始类型都有对应的包裹类(继承于Object),比如int的包裹类IntegerC#有无符号整数,uint、ulong、ushortJava没有C#没有高精度的dec..
分类:
编程语言 时间:
2015-05-17 23:42:51
阅读次数:
164
题目:一个举行内有n和圆,他们分别互相相交于不同的两个点,问他们把平面分成几部分。
分析:大整数,递推。F(n)= F(n-1)+ 2(n-1)。
如果已经有n-1个圆,加入第n个,分别与前n-1个圆相交生成2(n-1)个交点,把圆分割成2(n-1)段弧;
每段弧会把他所属的区域一分为二,F(n)= n(n-1)+ 2 { 其中,n ≥ 1 }...
分类:
其他好文 时间:
2015-05-17 16:50:54
阅读次数:
116