自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 动态规划—Problem M

动态规划—Problem M 题意 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? 解题思路 类似斐波那切数列问题,简单递归了。 感想 水题了,不太明白意图。只好随便写写了。 AC代码#include<iostream>using namespace std;int main(){ int

2016-04-29 19:37:51 220

原创 动态规划—Problem F

动态规划—Problem F 题意 数塔问题,有数塔(类似于三角形数字但稍有不同),要求从顶层走到底层,若每一步只能走到相邻的结点,求经过的结点的数字之和最大是多少。 解题思路 可以采用从下往上的思路,即从最后一排的数向上递推,这时候的状态方程为:dp[i][j]+=dp[i+1][j+1],dp[i+1][j];按照这种方式求最大值就可以了。 感想 算是入门的题目吧,比较简单。 AC

2016-04-29 17:06:19 226

原创 动态规划—Problem B

动态规划—Problem B 题意 最长公共子序列问题。简而言之,给出两段字符串,找出它们公共子序列的最大值。 解题思路 设c[i][j]为字符串a的第i个字符与字符串b的第j个字符为止的最长公共子序列长度,那么有两种情况: 1. 当a[i] == b[j]时,c[i][j]应该是前一个状态的最长公共子序列长度 + 1,而前一个状态是c[i - 1][j]呢,还是c[i][j - 1]?

2016-04-29 16:35:58 258

原创 动态规划—Problem A

动态规划—Problem A 题意 最大子段和问题,给出n个数,求n个数连续子段中和最大值以及构成这个最大值的数字是从第几个到到几个,如果同一个最大值有多种情况,则输出第一组情况即可。 解题思路 用一种简单方式来写就是,定义三个状态变量,分别表示当前输入的数值,之前数据总和,和要求的最大值,同时也有相应的位置变量,接下来就是输入数据并判断条件,在此过程中相应的对位置做相应改变。最后求得后按要

2016-04-29 14:29:49 207

原创 搜索总结

搜索总结搜索简介 搜索算法是利用计算机的高性能来有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。 相比于单纯的枚举算法有了一定的方向性和目标性。算法是在解的空间里,从一个状态转移(按照要求拓展)到其他状态,这样进行下去,将解的空间中的状态遍历,找到答案(目标的状态)。 搜索分类 在搜索这一部分主要讲的有入门的如二分、三分,BFS,DFS,还有一些结合其他的比较综

2016-04-23 18:36:17 179

原创 搜索—Problem_1016-Red and Black

搜索—Problem_1016-Red and Black 题意 简单概括,给一幅图,算出有从起点出发最多能走多少步。 解题思路 用DFS。从@开始所有向四个方向走,查看。的数量,当走到边界返回,碰到#返回。 感想 算是水题吧,其实DFS和BFS都可以。 AC代码#include <stdio.h>#include <string.h>int n,m,cnt;char map[3

2016-04-23 15:22:40 191

原创 搜索—Problem_1015-Knight Moves

搜索—Problem_1015-Knight Moves题意 国际象棋中Knight的移动问题。 /先简单介绍下knight:在国际象棋中Knight称“马”或“骑士”,Knight的走法和中国象棋中马相同,同样是走“日”字,或英文字母大写的“L”形:即先向左(或右)走1格,再向上(或下)走2格;或先向左(或右)走2格,再向上(或下)走1格。不同的是,囯际象棋的Knight没有“绊马脚”的限制

2016-04-23 14:19:10 221

原创 搜索—Problem_1020-Prime Ring Problem

搜索—Problem_1020-Prime Ring Problem题意 有N个连续的自然数围成一圈,要求重新组合它们的顺序使得任意相邻两个数的和为素数。输出符合要求的顺序。 解题思路 采用DFS。很笨的方法,对当前一个数,展开DFS,把每一种可能的方法都罗列出来,由于所规定数不超过20,所以把40以内的素数都写到数组里,让两个数的和去跟它们比较是否相等就能判断是不是素数了,符合条件的放入数

2016-04-22 17:19:49 202

原创 搜索—Problem_1012-Rescue

搜索—Problem_1012-Rescue题意 营救angle,她被困在监狱里,监狱地形看作是N*M的矩阵,其中有墙,路以及卫兵。她的朋友们要去救她,只要其中任何一位朋友找到她即可。在营救过程中如果遇到卫兵需要杀死他才能通过继续前进,这种情况会用2个单位的时间,遇到墙不能走,其余的情况可以走,每移动一次消耗一个单位时间。如能营救成功,求营救的最小时间。否则输出“Poor ANGEL has t

2016-04-22 16:14:58 245

原创 搜索—Problem_1019-N皇后问题

搜索—Problem_1019-N皇后问题 题意 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上)。对于给定的N,求出有多少种合法的放置方法 解题思路 就是考虑皇后放置的位置,对于每一行,我们需要枚举每个可以放置皇后的位置, 而且需要判断当前位置(第i行)是否满足条件,即判断这个位置是否与放置好的前i-1

2016-04-18 21:35:50 274

原创 搜索—Problem_1013&1014-A strange lift

搜索—Problem_1013-A strange lift 题意 电梯每层有一个不同的数字,例如第n层有个数字k,那么这一层只能上k层或下k层,但是不能到达低于一层或高于n层的层数,给定起点与终点,要求出最少要按几次键才能到达目标层数。 解题思路 用BFS方法来做。对于当前所在楼层,有两种方案,上或下,且移动的楼层数为该层的指定数目,所以列出这两种情况,对每种情况在分别搜索,之道能到达目

2016-04-15 18:11:06 283

原创 搜索—Problem_1011-Oil Deposits

搜索—Problem_1011-Oil Deposits 题意 搜索石油块问题。题目说明,@代表有石油,*代表没有石油,而在一个有石油的地方它的周围8个方向的地方如果也有石油,那么这2块则石油是属于一块。,给出图,问图中有几块石油田。 解题思路 使用DFS搜索,首先搜索图中第一个出现@的位置,然后对其8个方向进行搜索,并对搜索过的为@进行标记,直到一次搜索结束则油田总数加一,最后的总数即为

2016-04-15 15:54:16 209

原创 搜索—Problem_1004-Toxophily

搜索—Problem_1004-Toxophily题意 射箭问题,Bob要用箭射树上的水果,已知Bob所在坐标为(0,0),输入水果坐标和箭发出的速度,求射箭时箭应该与水平x轴成多少度才能使箭可以射中水果。 解题思路 物理题,简单分析运动状态,箭射出后做曲线运动,加速度为g方向水平向下。如果射出的箭能够达到目标点(x,y)且到达的角度最小,那么到达这个点时,箭的竖直方向上的速度必然是0,或者

2016-04-12 16:52:47 222

原创 搜索—Problem_1005-Turn the corner

搜索—Problem_1005-Turn the corner题意 汽车垂直转弯问题,给定路宽和汽车车长和车宽,判断车能否成功拐过。 解题思路 作图分析,车拐弯变道有一临界点,即最大转弯时刻,这时,如果左车尾碰到边,前左车到路边的水平距离(h)大于路宽(设为Y),显然是不通过的。于是就想求出这个h到底是多少,然后判断它与Y的大小即可。于是可以建立h(z)的函数,z设为车与水平的夹角,h(z)

2016-04-12 16:13:53 258

原创 搜索—Problem_1017-非常可乐

搜索—Problem_1017-非常可乐题意 平分可乐问题,一瓶可乐,两个杯子,三者之间可以相互倒,求使两个杯子中可乐体积相同时的最少次数。 解题思路 采用BFS,预处理m < n < s,以后处理方便点,初始状态,m,n杯中可乐体积为0,s杯中体积为s;然后分六种情况:1, s 倒 m;2, s 倒 n;3, m 倒 n;4, m 倒 s; 5, n 倒 m;6, n 倒 s。直到n,s

2016-04-09 15:02:15 256

原创 搜索—Problem_1008-猜数字

搜索—Problem_1008_猜数字题意 A有1数m,B来猜.B每猜一次,A就说”太大”,”太小”或”对了” 。问B猜n次可以猜到的最大数。 解题思路 设猜到的最大的数字为h,,猜到最大的数字h,也就是说,在1到h间的每一个数,你都能在m次内把它猜出来!所以说在最坏的情况下,在1到h间,你最多只要猜log2(h)+1(取整)次,所以易知h=2^m-1.即猜m次,能猜到的最大的数为2^m-1

2016-04-08 18:31:32 330

原创 搜索—Problem_1003-Pie

搜索—Problem_1003-Pie题意 分馅饼问题,有n块馅饼(半径大小不同),f个朋友,现在平分馅饼,要求每个人分得的馅饼体积相同(自己也要分到),在这过程中馅饼只能切不能拼接,求每个人可分到馅饼的最大体积。 解题思路 使用二分搜索,分析下,每个人分得最多馅饼的体积是现有的馅饼中最大那块的体积,最少就是0,,以此展开搜索,找到mid,并判断以此体积时能分得的人数并与总人数相比,如果多于

2016-04-08 17:50:14 649

原创 搜索—Problem_1001-Can you solve this equation?

搜索—Problem_1001题意 数学方程问题,给定一个关于x和y的表达式,其中y是输入的,x是0-100间的数,根据输入的y的值求表达式中x的近似值。 解题思路 所给表达式的函数是单调性的,所以对表达式中x的取值可以采用二分搜索的方法,然后比较逐步调整x的最佳范围,最终找到最佳符合条件的x,并输出。 感想 先做的第二题,又看的这个,算法稍有改变,但题目类似。 AC代码#includ

2016-04-05 17:06:09 397

原创 搜索—problem_1002-Strange fuction

搜索—Problem_1001题意 给定一个关于x和y的函数,其中y是输入的,x是0-100间的数,求这个函数表达式的最小值。 解题思路 所给表达式的函数不是单调性的,所以对表达式中x的取值采用三分搜索的方法,然后比较逐步调整x的最佳范围,最终找到最佳值,输出最小值。 感想 题目一目了然显然是利用搜索来提高程序效率得到结果。不过要注意下输入输出的格式。 AC代码#include<ios

2016-04-05 16:41:56 346

原创 贪心算法总结

贪心算法总结一、算法思想 贪心法的基本思路: 从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。 该算法存在问题: 1. 不能保证求得的最后解是最佳的; 2. 不能用来求最大或最小解问题; 3. 只能求满足某些约束条件的可行解的范围。 实现该算法的过程: 从问题的某一初始解出发; while 能朝给定总目

2016-04-01 20:55:37 2189

原创 贪心算法—Problem O

题意 题目意思是,给定T组测试数据,每组测试数据如下: 船每次能装n辆车,来回需要 2*t 时间,m辆车及其到达时间。 求:在最少的次数下的时间(最后一次不需要回头)以及最少的次数。 解题思路 运用贪心算法,贪心策略是:在没有达到最后N个人之前,ferry都是满载才出发。如果当前达到了倒数的第N个人,那么不论此时ferry中有多少人,都要出发,ferry回来之后再把剩下的N个人都载过去。

2016-04-01 16:05:07 290

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除