02 2012 档案

摘要:Candidate-Elimination算法是数据挖掘中的一种概念学习算法,部分解决Find-S的不足,可以输出所有与训练样本一致的概念,同时利用概念间偏序关系来指导搜索,其伪代码描述如下Initialize Gto the set of most-general hypotheses in H Initialize Sto the set of most-specific hypotheses in H For each training example, d, do: If dis a positive example then: Remove from Gany hypotheses 阅读全文
posted @ 2012-02-27 22:09 yangleo 阅读(389) 评论(0) 推荐(0)
摘要:STLContianers容器精辟总结一、序列容器(Sequence containers)1、 Vector :一种序列容器,实现为动态数组,元素保存在连续的存储位置,支持迭代器和索引访问。与数组不同的是,可以自动分配存储空间,容易改变容器大小。当需要频繁从序列尾部增加或者删除数据时,可以表现出高效的性能。size记录了当前容器大小,capacity记录了当前已分配的最大空间。2、 List:一种序列容器,实现为双向链表。与其他容器如vector和deques相比,list在容器内部插入、删除元素操作中性能更好。主要缺点是不支持元素直接按索引访问,需要迭代遍历。3、 Deque:全称为dou 阅读全文
posted @ 2012-02-26 19:06 yangleo 阅读(278) 评论(0) 推荐(0)
摘要:题目链接 http://cs.nyu.edu/courses/spring12/CSCI-GA.2560-001/prog1.html题目大意:给定n个任务的时间、价值及先后序关系,求一个可行的任务子集,使得时间之和不大于deadline,价值之和不小于targetVaule,且不可出现逆序。算法思路:题目已经给出算法,转化为状态空间搜索问题(tree-structured state space search problem),先对结点拓扑排序,存储前序的结点关系,然后先对状态搜索树进行BFS,可行的状态压入队列,到达到限制值后,再以队列中的状态为起点进行迭代深入搜索(Iterative d 阅读全文
posted @ 2012-02-16 01:28 yangleo 阅读(483) 评论(0) 推荐(0)
摘要:通过分类讨论,将规模较大的问题转换成规模较小的相同问题,学会”降维“,将索引值不断降小,就可以递归求解设f(m,n)为把m个苹果放到n个盘子中的方法数,m>=0,n>=0.若m和n中任何一个等于0,那么f(m,n) = 1,注意不是等于0,因为相当于就那么一种结果,就是不往盘子里面放(没有苹果),或者,连盘子都没有。若n=1,显然对于任意的m>=0 有f(m,1) = 1若m=1,显然对于任意的n>=0 有f(1,n) = 1接下来讨论m>1 && n>1的情况:若 m < n 则 f(m,n) = f(m,m)。即空哪几个盘子都是一样 阅读全文
posted @ 2012-02-11 18:42 yangleo 阅读(477) 评论(0) 推荐(0)
摘要:这题是求数字三角形由顶到底边最大数字和对应的路径,在准备夏令营的时候红皮教材上面有,当时没有学动态规划算法,不是很理解,经过这一阵对算法的学习和POJ训练,总算在10分钟内独立思考AC,其实挺简单,满足最优子结构和无后效性,是经典的动态规划问题。一般的思考方法是,由特殊情况比如题目给的示例数据入手,分析如何计算辅助数组dp的值,dp[i][j]记录以r[i][j]为顶点向下走到底边可以得到的最大和,dp数组底边的值就是数字三角形底边数字,然后从底向上计算,dp数组的计算方程(即动态规划状态方程)为dp[i][j] = max(r[i][j] + dp[i+1][j] , r[i][j] + d 阅读全文
posted @ 2012-02-11 16:27 yangleo 阅读(429) 评论(0) 推荐(0)
摘要:这题主要求二叉树结点到根结点的路径长度,基本的思路是 比较a与b,如果a大则当前结点是左孩子,a-b作为父结点的左数,父结点的右数与当前右数相等;如果b大则当前结点为右孩子,同理可以求父结点,直到父结点为(1,1)遍历结束。当用原始的递归算法会超时,需要考虑a=1或b=1的特殊情况,同时利用a与b的倍数关系加快遍历速度Source CodeProblem: 2499User: yangliuACMerMemory: 244KTime: 0MSLanguage: C++Result: Accepted#include <iostream> using namespace std; v 阅读全文
posted @ 2012-02-11 15:31 yangleo 阅读(551) 评论(1) 推荐(0)
摘要:这题就是求中位数,直接用qsort排序取中,算法复杂度为O(NlogN)当然求中位数的最优算法是O(N)的Select算法Source CodeProblem: 2388User: yangliuACMerMemory: 284KTime: 63MSLanguage: C++Result: Accepted#include <iostream> #include <stdlib.h> using namespace std; int comp(const void * a, const void * b){ return (*(int*)a - *(int*)b); } 阅读全文
posted @ 2012-02-11 13:23 yangleo 阅读(197) 评论(0) 推荐(0)
摘要:这个题目直接用的暴力枚举,但是还是WA了几次原因是这句话You should process all pairs of integers and for each pair determine the maximum cycle length over all integers between and including i and j.注意i可能大于j,此时需要交换顺序,但是输出的时候还会是原始顺序比如 输入1 10 输出 1 10 20 ;输入10 1 输出 10 1 20因此交换i和j需要用标志位记录一下Source CodeProblem: 1207User: yangliuACMer 阅读全文
posted @ 2012-02-10 21:57 yangleo 阅读(218) 评论(0) 推荐(0)
摘要:水题一道,以后还是不做水题,没什么收获Source CodeProblem: 2017User: yangliuACMerMemory: 244KTime: 0MSLanguage: C++Result: Accepted#include <iostream>using namespace std;int main(){ int n,s[11],t[11]; int i,ret; while(cin>>n, n != -1){ ret = 0; memset(s, 0, sizeof(s)); memset(t, 0, sizeof(t)); for(i = 1; i 阅读全文
posted @ 2012-02-10 16:54 yangleo 阅读(217) 评论(0) 推荐(0)
摘要:此题关键要理解输出的定义For each test case, you should output a line contains an integer, which is the length of the longest road to be built such that all the villages are connected, and this value is minimum.输出是最小生成树中最长边的长度对prim算法稍作变化即可ACSource CodeProblem: 2485User: yangliuACMerMemory: 1232KTime: 750MSLangua 阅读全文
posted @ 2012-02-09 23:27 yangleo 阅读(224) 评论(0) 推荐(0)