题意:Ignatius要从迷宫的(1,1,1)在时间t内跑到(a,b,c),问可不可能。(题目本来是从(0,0,0)跑到(a-1,b-1,c-1)的)简单的3维bfs加剪枝:a+b+c-3>t 速度会快不少。不过我这里没有加。Input输入数据的第一行是一个正整数K,表明测试数据的数量.每组测试数据...
分类:
其他好文 时间:
2015-04-05 15:52:14
阅读次数:
193
这题是深搜的典型题,要在时间 t 内准确到达终点,处理不好要么 wa 要么 TLE。有两个很重要的剪枝:一是奇偶剪枝,必须提前判断好 'S'和'D' 之间的曼哈顿距离和时间 t 是否同奇偶,否则会 TLE;二是判断 '.' 的数量是否大于或等于 t-1,这个能使程序快很多,但不是必要的,我试了下.....
分类:
其他好文 时间:
2015-04-05 14:29:33
阅读次数:
122
注:网上搜的第一篇 1001 这个就不用说了吧1002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010 搜索题,剪枝很关键1011 10...
分类:
其他好文 时间:
2015-04-04 18:23:48
阅读次数:
277
CART算法原理与理解
CART算法的全称是分类回归树算法,分类即划分离散变量;回归划分连续变量。他与C4.5很相似,但是一个二元分类,采用的是类似于熵的GINI指数作为分类决策,形成决策树之后还要进行剪枝,我自己在实现整个算法的时候采用的是代价复杂度算法。
GINI指数
GINI指数主要是度量数据划分或训练数据集D的不纯度为主,系数值的属性作为测试属性,GINI值越小,表明样本的纯净度越高...
分类:
编程语言 时间:
2015-04-01 22:02:53
阅读次数:
324
题意: 找出一个数组内和为0的三元组,元组不能重复
思路1:.直接暴力DFS,这样会超时,不过先排序加上剪枝的花据说能够AC
思路2:先排序O(N*log(N)),然后遍历a 从0 到 nums.length - 2, 结下来的问题就简化为2Sum的问题了 复杂度O(N*N)
代码:
public List> threeSum(int[] num) {
List> ...
分类:
其他好文 时间:
2015-04-01 20:05:40
阅读次数:
141
DFS+剪枝 POJ2362的强化版,重点在于剪枝 令InitLen为所求的最短原始棒长,maxlen为给定的棒子堆中最长的棒子,sumlen为这堆棒子的长度之和,那么InitLen必定在范围[maxlen,sumlen]中 根据棒子的灵活度(棒子越长,灵活度越低) DFS前先对所有棒子降序排序 剪...
分类:
其他好文 时间:
2015-03-29 14:57:37
阅读次数:
103
dfs:注意的小问题,如果是多路径的话,一次memset(vis,o,sizeof(vis))如果跟步骤有关要申请一个全局变量理解栈与递归hdu 1518数据拼正方形;思路:就是排序,首先可以剪枝,就是sum%4!=0的,有个小的处理就是先求出sum/4;#include #include usin...
分类:
其他好文 时间:
2015-03-28 14:10:00
阅读次数:
114
背景:开始wa了几次,是因为剪枝的不合理。然后去掉其中几个错误剪枝ac。就是三个方向的bfs,一定要用标记数组,要不然数据会呈现3的指数级别增长会爆队列的。这里标记数组起始可以用bool visit[M]。
学习:1.如果队列不用stl的话,可以用数组实现,只是在数组中间操作:int queue[2*M];
int *front=queue+M,*back=queue+M+1; //定义队...
分类:
其他好文 时间:
2015-03-20 14:30:48
阅读次数:
133
Problem Description
George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally and how long they were origin...
分类:
其他好文 时间:
2015-03-20 11:05:11
阅读次数:
129
http://poj.org/problem?id=1011要把所给的集合分成几个集合,每个集合相加之和ans相等,且ans最小,因为这个和ans只在[1,64*50]内,所以可以用dfs一试首先ans需要满足两个条件1.可以被总集合的和sum整除 2.是总集合的某个子集的和 对于条件1,可以通过试...
分类:
其他好文 时间:
2015-03-19 06:11:49
阅读次数:
108