算法
文章平均质量分 79
Nagi_Way
这个作者很懒,什么都没留下…
展开
-
(译)A*算法寻路-新手入门
原文链接简介:搜索区域假设有某个人想要从A点到达B点,假设有一堵墙隔离了两个点,如下图,绿点是起始点A,红点是终点B,中间蓝色的长方形是墙。你需要注意的第一件事情是我们把搜索区域分割成正方形网格。就像我们已经做的,简化搜索区域是寻路的第一步。这个特殊的步骤将我们的搜索区域简化为二维矩阵。每个矩阵中的元素代表着网格中的一个正方形,并且它的状态被标记为walkable或者是unwa翻译 2017-03-23 14:32:03 · 406 阅读 · 0 评论 -
(笔记) A*启蒙
原文很精彩!地图表示当理解算法的时候,第一件事是理解数据,什么是输入?什么是输出?输入:图形搜索算法,包括A*,把“图”作为输入.一个图是地点(节点)的集合和地点之间的连线(边)A*不知道任何其他信息。它只知道图。它不知道一个节点是房间还是门口或者一个区域多大。输出: A*算法发现的路径由节点和边组成。边是抽象的数学概念。A*告诉你从一个地点移动到另一个地点,但不会告诉你怎么移动过去的。权衡:对于任翻译 2017-03-24 20:22:46 · 383 阅读 · 0 评论 -
dp练习
最长公共子序列 http://poj.org/problem?id=1458void lcs1458(){ char s1[500], s2[500]; while(scanf("%s %s",s1,s2)!= EOF) { int len1 = strlen(s1); int len2 = strlen(s2); int lcs[500][500原创 2017-05-27 21:59:56 · 341 阅读 · 0 评论 -
快速幂取模算法
快速幂取模算法 所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。我们先从简单的例子入手:求abmodc算法1.直接设计这个算法:int ans = 1;for(int i =转载 2017-05-28 15:44:25 · 504 阅读 · 0 评论 -
矩阵快速幂练习
参考 http://m.blog.csdn.net/article/details?id=52058209应用篇主要通过把数放到矩阵的不同位置,然后把普通递推式变成"矩阵的等比数列",最后快速幂求解递推式:先通过入门的题目来讲应用矩阵快速幂的套路(会这题的也可以看一下套路):例一: http://poj.org/problem?id=3070题目:斐波那契数列f(n),给一个n,求f(n)原创 2017-05-28 20:01:24 · 491 阅读 · 0 评论 -
最大和
求最大和在一个N*N的数组中寻找所有横,竖,左上到右下,右上到左下,四种方向的直线连续D个数字的和里面最大的值输入描述:每个测试输入包含1个测试用例,第一行包括两个整数 N 和 D :3 <= N <= 1001 <= D <= N接下来有N行,每行N个数字d:0 <= d <= 100输出描述:输出一个整数,表示找到的和的最大值输入例子:4 287 98 79 6110 27 9原创 2017-06-04 19:35:28 · 275 阅读 · 0 评论 -
搜索题练习
时间限制:1秒空间限制:32768K大家一定玩过“推箱子”这个经典的游戏。具体规则就是在一个N*M的地图上,有1个玩家、1个箱子、1个目的地以及若干障碍,其余是空地。玩家可以往上下左右4个方向移动,但是不能移动出地图或者移动到障碍里去。如果往这个方向移动推到了箱子,箱子也会按这个方向移动一格,当然,箱子也不能被推出地图或推到障碍里。当箱子被推到目的地以后,游戏目标达成。现在告诉你游戏开始是初始的地原创 2017-06-06 21:54:31 · 358 阅读 · 0 评论 -
网易春招面试题--搬砖
小易有n块砖块,每一块砖块有一个高度。小易希望利用这些砖块堆砌两座相同高度的塔。为了让问题简单,砖块堆砌就是简单的高度相加,某一块砖只能使用在一座塔中一次。小易现在让能够堆砌出来的两座塔的高度尽量高,小易能否完成呢。输入描述:输入包括两行:第一行为整数n(1 ≤ n ≤ 50),即一共有n块砖块第二行为n个整数,表示每一块砖块的高度height[i] (1 ≤ height[i] ≤ 5原创 2017-06-03 15:50:57 · 1060 阅读 · 0 评论 -
2017网易春招编程题
一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间。输入描述:输入包括两行:第一行为整数n(1 ≤ n ≤ 50)第二行为n个整数length[i](1024 ≤ len原创 2017-05-27 20:23:49 · 957 阅读 · 0 评论