1基本数据结构基本数据结构有:数组。顺序存储,可随机访问。有最快的查询速度,插入、删除元素非常麻烦。链表。存储相对位置,可按节点依次访问。查询较慢,插入、删除节点较快。有单向链表、双向链表等。块状链表。数组和链表结合。栈和队列。树。有二叉树、平稀树、B树等。堆。有顺序的树。散列表。哈希表,即map。...
分类:
其他好文 时间:
2014-07-10 12:44:03
阅读次数:
164
原题:UVA 1172 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3613动态规划问题。定义: dp[i] = 右岸前i个村庄(m岸)能够与左岸(n岸)...
分类:
其他好文 时间:
2014-07-07 17:13:26
阅读次数:
260
本文给出了如下题目的参考解答,虽然方法并不是最优,但详细的分析具有很好的参考价值!题目:已知一个序列,由随机数构成,求其最长单调子序列。要求: 单调分严格和不严格两种情况,并分别求解并输出一个最长单调子序列和所有符合要求的子序列。...
分类:
其他好文 时间:
2014-07-01 08:28:41
阅读次数:
303
司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队,一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H"
表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:
如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区...
分类:
其他好文 时间:
2014-06-29 23:54:13
阅读次数:
303
这题没想出来,直接参考了nocow,太弱了= =。
基本思想是动态规划,因为树是递归结构,所以可以递归分成子问题处理。一个树可以看成根加左子树加右子树,所以根据乘法原理,N个节点放成k层的结构等于i个节点放成k - 1层乘以N - i - 1个节点放在k - 1层的积。
令dp[i][j] 为i个节点放j层的最多可能数量,则dp[i][j] = sum{dp[k][j - 1] * dp[i ...
分类:
其他好文 时间:
2014-06-29 23:49:12
阅读次数:
339
#includeint c[10][100];int w[10],p[10],x[10];int RUN(int m,int n){ int i,j; for(i=1;ic[i-1][j]) c[i][j]=p[i]+c[i-1][j-w[i]]; ...
分类:
其他好文 时间:
2014-06-27 18:37:37
阅读次数:
181
用1*2 的骨牌通过组合拼成 m * n 的大矩形,问有几种拼法。
题目链接:http://poj.org/problem?id=2411
状态转移:
由于上一行的该列竖直放置骨牌为 0,影响到当前行的该列,当前行的该列为 1
当前行骨牌横放,上一行骨牌横放, 都为11
上一行该列置为 1,当前行当前列立着放为
0
#include
#include
using...
分类:
其他好文 时间:
2014-06-27 07:50:19
阅读次数:
196
1Iterable接口实现这个接口的对象被允许成为 "foreach" 语句的目标2 动态规划动态规划的基本思想是将待求解的问题分解为若干个子问题,按顺序求解子问题。前一子问题的解,为后一子问题的求解提供了有用的信息。动态规划算法和分治法的基本思想比较类似,区别在于动态规划解决的问题可以分解为重叠子...
分类:
其他好文 时间:
2014-06-26 12:18:28
阅读次数:
226
提示:这是属于动态规划问题。动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。
其实这道题目有一些问题:不能交换位置,这个关键的信息在题目中间没有进行说明。
编程思路是:需要三个数组,第一个数组存放原数据。第二个数组用于存放人数:从左向右遍历时,对于当前的数据(身高),寻找符合条件的人数,要求是从小到大排列的最...
分类:
其他好文 时间:
2014-06-26 08:19:13
阅读次数:
305