自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Java类加载时方法的执行顺序

public class ClassA { public static ClassA classa = new ClassA(); static{ System.out.println("ClassA的静态代码块"); } public ClassA(){ System.out.println("Cla...

2019-07-31 12:47:18 1991

转载 二叉树的先序、中序、后序递归遍历和非递归遍历

文章转载自:http://blog.csdn.net/htyurencaotang/article/details/12379887#include "stdafx.h"  #include   using namespace std;    const int MAXSIZE = 20; //定义栈空间大小为20    struct BTNode  

2017-11-08 21:27:12 358

转载 Trie树的详解及其应用

一、知识简介        最近在看字符串算法了,其中字典树、AC自动机和后缀树的应用是最广泛的了,下面将会重点介绍下这几个算法的应用。      字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-value 映射,只不过 Trie 的 key 只能是字符串。  Trie 的强大之处就在于它的时间复杂度。它的插入和

2017-11-05 13:29:49 286

原创 nyoj 983 首尾相连数组的最大子数组和

解题思路:如果不是首尾相连的数组我们可以直接求最大子数组和,但这个题是上面的升级版。我们可以先假设收尾数组不相连,求出总长度的和,然后求出最大连续子数组和,最小连续子数组的和。然后用总长度的和减去最小连续子数组的和,最后和上面求出的最大连续子数组的和比较取最大值。首尾相连数组的最大子数组和时间限制:1000 ms  |  内存限制:65535 KB难度:4

2017-08-17 16:44:49 335

原创 lightoj 1282 Leading and Trailing

题目大意就是给你 n 和 k 让你求出n的k次方的前三位数和后三位数直接求肯定不可能,求后三位可以直接快速幂求取但是前三位就恶心了,其实是需要一个知识点——就是要把大数转化成整数和小数的形式。 任何数n可以化成10^a,而本题是求n^k,所以n=10^(a*k)=10^(i+d)=10^i*10^d,其中i是a*k的整数部分,d是a*k的小数部分。 d可以由fmod(a*k,1)求

2017-08-15 17:50:42 322

原创 lightoj 1259 Goldbach`s Conjecture

解题思路:按照常规暴力的话,结果肯定是Memory  Limit,所以这道题可以用素数筛先把素数找出来,记录在一个数组里面,等用的时候直接可以用。见代码吧!!!这道题还有一个需要注意到,开数组的时候用bool型,因为bool型占一个字节,而int占四个字节Goldbach's conjecture is one of the oldest unsolved problems in

2017-08-15 16:11:32 283

原创 lightoj 1245 Harmonic Number (II)

首先这道题暴力肯定超时,所以这种方法舍弃。看看有没有啥规律,我们假设tmp=n/i,n=10时;当 tmp = 1 时,个数 是10/1 - 10/2 == 5个当 tmp = 2 时,个数 是10/2 - 10/3 == 2个当 tmp = 3 时,个数 是10/3 - 10/4 == 1个…………当 tmp = 10时,个数是

2017-08-15 11:26:47 306

原创 lightoj 1234 Harmonic Number

题目及时给你一个调和级数让你求它的和,不过直接求是不可能的,肯定超时,所以这里就要用到欧拉常数了,当数据比较小的时候直接暴力,当数据超过一定范围的时候,就用这个公式f(n) = ln(n) + c + 1/(2*n);其中才就是欧拉常数。。。。。。。当然还有其他方法,就是分段打表然后根据数据的大小先从表中选取数据,然后在循环暴力出结果这里给出第一种方法的代码!In ma

2017-08-15 10:55:47 284

原创 nyoj 10 skiing

大神的思路:  记忆化搜索+动态规划。从某一个点出发,向四个方向探索,找出一条最长的路径,然后再从所有最长路径中找一个最最长的,即为所求。普通搜索的思路就是从一个点开始向四个方向探索,同时用一个变量s进行长度的累加。每次四面都不能走了的时候,就比较max与当前s,进行max的更新。但这样就出现一个问题。每次搜到一个点,不管这个点是否已经探索过,都要再搜索一次,以达到求出最长

2017-08-12 15:47:30 295

原创 UVA --839 Not so Mobile

题目:点击打开链接题目大意:让你判断天平是否平衡,四个数分别代表左子树的质量和力臂,右子树的质量和力臂。思路见代码!!!/*思路:输入本身就包含了递归,我们直接一边输入一边递归就可以了递归思想是这样的:假设我们已经拥有了一个判断某个子天平是否平衡的方法,称为solve()那么我判断一个天平是否平衡,可以使用这个方法先判断它的左子天平是否平衡,再判断它的右子天平是否平衡,最后计算W1

2017-08-09 20:31:11 231

原创 HDU 3999----The order of a Tree(二叉树的前序遍历)

题目大意:给你一个序列,让你用这个序列建立一个 二叉搜索树。然后在让你在输出一个序列,让这个序列可以构成和上面一样的二叉搜索树,且序列的 字典序最小。根据二叉搜索树的定义,左子树小右子树大,所以直接输出先序遍历就行了!!!(最近刚开始学数据结构,为毛数据结构都是指针啊!!!最怕的就是指针,因为C语言没好好学他,没办法只能克服了),下面的代码大家共勉,有什么问题还请多多指教,我学的也不好

2017-08-09 08:43:57 865

原创 poj 2559 Largest Rectangle in a Histogram

题目大意:给你一个柱状图,每个矩形的宽度都是1,问你在柱状图中可以截取的最大的矩形的面积是多大解题思路:分别以每一个矩形的高度为最小值,找出每一个单位矩形的左边界和右边界的下标,左边界(left)定义为:左边连续比当前高度大的最左边的单位矩形的下标,右边界(right)定义为:右边连续比当前高度大的最右边的单位矩形的下标。然后用(右边界-左边界+1)*dp[i](当前矩形的高度),就可

2017-08-08 17:16:49 225

原创 hdu 1622 Trees on the level

题目大意:输入一颗二叉树,你的任务是按照从上到下,从左到右的顺序输出各个结点的值。每个结点都按照从根结点到他的移动顺序给出(L表示左,R表示右)。在输入中,每个结点的左括号和右括号之间没有空格,相邻结点之间用一个空格隔开。每棵树的输入用一对空括号()结束(这对括号本身不代表一个结点)这是一道关于构建二叉树和层次遍历的题。阶梯思路在代码中!!!Trees are fundamenta

2017-08-08 14:17:14 323

原创 hdu 3791 二叉搜索树

做这道题首先知道二叉树搜索树的定义是关键! ! !  注意: 二叉树和二叉搜索树(BST)的概念是不同的,二叉搜索树是一种特殊的二叉树。它符合规律:所有节点的左孩子节点的值小于它根节点的值,右孩子节点的值大于根节点的值。就是小数放左边,大数放右边,来构成一棵二叉树。(还不明白的点击上面有下划线的深色链接)  一开始没有搞明白两者的区别,以为二叉搜索树就是二叉树,这让我在构造

2017-08-07 21:54:21 295

原创 动态规划详解

http://blog.csdn.net/hnuzengchao/article/details/7589246

2017-08-04 19:15:30 225

原创 nyoj 1023 还是回文

题解:这是一道区间dp,第一次做关于区间dp的问题,也不是很理解,在网上看了一下别人的思路,希望会有点帮助dp[i][j]代表区间i到区间j成为回文串的最小代价,那么对于dp[i][j]有三种情况:1、dp[i+1][j]表示区间i到区间j已经是回文串了的最小代价,那么对于s[i]这个字母,我们有两种操作,删除与添加,对应有两种代价,dp[i+1][j]+add[s[i]],d

2017-08-04 17:05:16 271

原创 nyoj 814 又见拦截导弹

说实话我到现在都不理解他说的题意,可能是我自己理解有问题吧。然后上网搜了一下博客,才明白其实就是一道求最大 上升子序列的dp。。。啊啊啊!!!描述大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度。突然有

2017-08-04 10:40:10 320

原创 HDU 1864 最大报销额

虽然是中文题也有几点需要注意,如果魅族商品中除了A,B,C三种商品外还有其他商品,那么这组数据就作废。    乍一看给的数据好像很难得样子,其实也是背包问题,转化一下就行。因为数据是浮点型,恰有两位小数,但是dp不能处理浮点型,所以浮点型数据储存数组的时候要 X100,变成int型。      用%c输入要记得吸收空格。现有一笔经费可以报销一定额度的发票。允许报销的发票

2017-08-03 19:28:19 319

原创 搬寝室 HDU 1421

状态转移思想:将物品按质量递增排序后,从前i件物品中拿走j对(j*2<=i)时,(1)不拿第i件,则dp[i][j]=dp[i-1][j],这个毫无疑问。(2)拿第i件物品,则第i件物品肯定和第i-1件物品一起拿,则dp[i][j]=dp[i-2][j-1]+(w[i]-w[i-1])^2,即从前i-2件中拿j-1对的疲劳值加上拿了最后两件物品的疲劳值(当然,由前到后处理的,i和j前面的所有情况都

2017-08-03 15:40:44 270

原创 Fixing Typos CodeForces - 363C

大致题意:个人感觉题目描述的不是很清楚,一开始理解错了。大致意思分为两种情况:1> 不能出现三个或者三个以上连续相同的字母   2>不能出现两个不同字母连续如aabb是不符合题意的。解题思路:开两个数组,边比较边存!!!看代码一目了然Many modern text editors automatically check the spelling of the user's

2017-08-03 10:46:15 334

原创 Genealogical tree POJ - 2367

大致题意:虽然题目很复杂,说的很绕,但是题意很简单就是说的一个拓扑排序,父节点,子节点什么的。思路就是最简单的一个拓扑排序,而且不需要判断是否有回路。The system of Martians' blood relations is confusing enough. Actually, Martians bud when they want and where they

2017-08-03 09:21:54 222

原创 威威猫系列故事——打地鼠 HDU - 4540

解题思路:就是直接dp,要用到三层循环,状态转移方程为 dp[i][j]=min(dp[i][j],dp[i-1][l]+abs(a[i][j]-a[i-1][l])); 威威猫最近不务正业,每天沉迷于游戏“打地鼠”。   每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作!   无话可说...      我们知道,打地鼠是一款经

2017-08-02 21:50:29 414

原创 CA Loves Stick HDU - 5655

题目大意:意思非常简单,就是给你四个木棒,是否能用这四个木棒拼成一个四边形解题思路:只需要判断最小的三条边的和是否大于第四条边就行了。但是数据给的最大是long long int,所以不能直接比较,转化一下,还有需要判断木棒中 不能有0CA loves to play with sticks. One day he receives four pieces of sticks,

2017-08-02 20:32:22 260

原创 HDU 2822 Dogs

题目大意:有一只狗想要去拜访另一只狗,但这只狗非常懒,它想要挖最少的洞。X代表这些是路是通的,且四个方向只要连着的X都不需要挖洞,“  . ”代表需要挖洞。每组最后两行分别代表狗的起始点和终点。问小狗最少需要挖多少洞才能去拜访他的朋友。解题思路:最短路第一反应应该是BFS,但是还需要加点什么,因为走X步数是不变的,走“ . ”步数需要加一,也就是每个点的权值是不一样的,所以小狗每移动一个方

2017-08-02 20:23:09 286

原创 hdu 1203 I NEED A OFFER!

解题思路:题目就是要让你计算出最大的录取概率,但是录取的情况比较多,可能有录取的有不录取的,还有都录取的。所以我们计算不录取的概率,然后用1 减去不录取的概率,就得到了录取的概率!其实这也是背包问题,但要注意几点情况因为是概率,所以要用double型定义,还有计算是要取最小容量(因为是不录取的概率),其他的我在代码中都有注释!!!Speakless很早就想出国,现在他已经考完了

2017-08-02 09:26:05 247

原创 hdu3466 Proud Merchants

大致题意:有n组数,每组数有三个数,pi,买这种物品你有的钱必须大于qi,你所能获得的价值vi。如果你想要买这种物品你所拥有的钱必须大于qi。问你能用你所有的钱最多能获得多大价值。解题思路:以第二组数据为例:A:5 10 5  B:3  5   6如果先买A的再买B的话需要花10块钱,但是先买B再买A的话需要13块钱。也就是花不同的钱却获得了相同的价值。所以这里排序就比较关键了!怎

2017-08-01 19:05:55 250

原创 hdu 1285 确定比赛名次

拓扑排序!!!有N个比赛队(1Input输入有若干组,每组中的第一行为二个数N(1Output给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。 其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。 Sample Input4 31

2017-07-25 09:24:48 201

原创 poj1386 Paly onWords

题目大意:给你很多单词,让你为这些单词排序,使这些单词每个单词首字母是上个单词的尾字母。分析:对于每一个单词,我们只需要纪录下它的首字母和尾字母即可,然后单词接龙就变为了我们熟知的欧拉路径问题了。一个有向图存在欧拉路径,当且仅当该图是连通的,且所有顶点的出度和入度度数之和为0,或仅存在一个度数为1的顶点和一个度数为-1的顶点,其他顶点的度数为0。Some of the secret

2017-07-24 19:45:58 244

原创 poj2502 Subway

文章大意:第一行是你家和你的学校的坐标,然后每一行是地铁的站点的坐标,相邻的站点可以乘地铁到达速度40km/h,其他站点只能步行到达,速度10km/h,问你从家到学校最短的时间是多少大致思路:难点是输入数据,你用测试数据的时候是输不出结果的,但是能提交对,前提你的代码是对的。用dijkstra,将站点的距离存入数组,其他的就完全是dijkstra的模板了Time l

2017-07-24 15:09:29 255

原创 poj 1062

题目大意是说有N个物品,每个物品都有自己的价格,但同时某些物品也可以由其他的(可能不止一个)替代品,这些替代品的价格比较“优惠”,问怎么样选取可以让你的花费最少来购买到物品1由于有N个物品,我们就可以把它们看作是N个点,从其他点到他的优惠关系视做边,又因为最后总是要找到物品1,所以可以看作是从起点0,到将物品1作为终点的最小路劲。然后由于题目是说,这条路劲上不能有两个的等级差超过M,所以我

2017-07-24 09:42:17 223

原创 小希的迷宫 HDU - 1272

中文题,就不说题意了,都能看懂。大致思路:这个题是一个并查集题加最小生成树,就是判断路径中是否有多余的边,有就输出NO,没有YES输入数据的时候需要注意,还有数据比较大,开数组注意上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通

2017-07-20 20:11:06 205

原创 Out of Hay POJ - 2395

大致题意:就是农场的牛跑了,现在牧人要去抓牛,但是从目前到牛的地方有很多条路,现在让你走最短路径,就是最小生成树,然后取最小生成树里面的最大边大致思路:我用的prim算法,其实就是prim算法的模版,就是加了个更新最大边,每加入生成树一条边,就更新最大边;The cows have run out of hay, a horrible event that must

2017-07-20 19:55:42 377

原创 Five-In-a-Row CodeForces - 825B

大致题意:题意很简单,就是两个人在下五子棋,一个人的棋子是X,另一个人的棋子是O,现在轮到X了,问能否在“ . ”区域放一个棋子使得在八个方向上的任意一个方向上能构成五个或者五个以上的连续X棋子,如果可以输出YES,否则输出NO大致思路:一开始想的用dfs,但是想的太复杂了,没有做出来,最后看了队友的思想,直接暴力八个方向,因为棋盘区域才是10X10的,完全没问题,代码也很简单

2017-07-20 19:41:04 313

原创 poj3669Meteor Shower

大致题意:流星要撞击地球,给你n组坐标和对应的时间,表示流星走到这一点要爆炸的时间,问你某人一开始在坐标(0,0)地点是否能在流星爆炸前逃到安全区域。解题思路:用bfs遍历所有可能爆炸的情况,现将坐标构建成一个地图map,将map初始化为-1,将时间t,赋给所对应的坐标,因为爆炸点有很多,可能有爆炸的重叠的部分,这重叠部分的爆炸时间可能不同,所以要比较一点的爆炸时间,将最小的时间赋给这一点,(

2017-07-20 17:55:47 230

原创 poj1426Find The Multiple

文章大意就是:给你一个正整数N,让你用 1 和 0 组成一个不超过100位的数字,问这个数字是多少恰好能整除N,可能这样的数不唯一,输入其中一个就行当时没做出来确实不应该,因为是英文题先看了眼数据,发现数据这么大,没仔细读题都以为肯定会超时。如果当时在勇敢一点吧题好好读一遍,把数据在测试一遍,应该是能做出来的。其实你能输入来的数最大也不超过19位!!!(做题也考验人的胆量,吼吼)解

2017-07-20 14:44:33 204

原创 HDU1598find the most comfortable road

虽然是中文题,还是是想说几句题意,是求“并查集”,并不是   最小生成树!!!因为题中说了一句“但XX星人对时间却没那么多要求。要你找出一条城市间的最舒适的路径”,这句话就说明了,你可以随意走,但要求是最舒适,也就是速度差最小!!!比赛的时候没做出来就是理解错题意了,一直用最小生成树一直错!!!解题思路:主要是并查集方法,但用到了Kruskal的思想,将边从小到大排序。然后每输入一组要求解的数

2017-07-20 14:07:07 303

原创 poj1751 Highway (Prim)

题目大意就是:建高速公路,使得每个城镇都联通,花费最少的钱。前N行是对应城镇的坐标,后M行是已修建的高速公路,不计入花费数。让你输出要修建的高速路序号。The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has a very poor system of public highwa

2017-07-18 17:24:03 333

原创 pojFilp Game2965 翻转棋子

题目来源    http://poj.org/problem?id=1753#includeint map[10][10],ans=999999;char s[10];int panduan() //判断是否都为同一色{ int m=map[0][0]; for(int i=0; i<4; i++) for(int j=0; j<4; j+

2017-07-15 15:29:45 346

原创 poj1321棋盘问题

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n 当为-1 -1时表示输入结束

2017-07-15 15:17:18 442

原创 poj1724 ROADS

大致题意 从一个城市到N城市,有多条路径可以选择,每条路径有对应的钱数,问是否能用不超过K的硬币数到达目的地。思路:dijkstra+heap的应用,加上A*的约束条件。需要对dijkstra有很好的理解,蛮像dfs的。改普通的dij为:只要一边起点的当前花费钱数 + 这条边的花费钱数 .(普通的dij是终边的距离有变小才让其加入heap)。这样的话,就可能有很多的同一个城市的不同点(距离

2017-07-14 21:21:28 232

空空如也

空空如也

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

TA关注的人

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