- 博客(12)
- 资源 (6)
- 收藏
- 关注
原创 hdoj1258
Sum It Up Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3006 Accepted Submission(s): 1509 Problem Description Given a specified to
2013-07-31 20:49:04 716
原创 hdoj1015
Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Klein safe behind a painting in the second-floor library. Klein safes are extremely rare; most of them, a
2013-07-31 19:27:00 1010
原创 hdoj1035
这道dfs的题只需要根据具体的方向走就可以,不需要把所有的邻接点都访问一遍。 题意:机器人根据网格中的指示,走向不同的方向,如果可以走出去,输出步数;如果走不出去,输出遇到环之前走了几步,并输出环的大小 思路:设置一个数组,记录当前走的步数,如果超出范围,说明可以走出去,输出相应的步数;如果遇到被标记的,说明走不出去,先输出当前位置的步数,然后用前一个的步数,减去当前位置的步数,得到环的大小。
2013-07-31 17:02:34 771
原创 树状数组
树状数组,看了半天,刚开始不太理解,看了下面这个图和讲解之后之后,才大体明白了。 树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n],那么查询a[1]+...+a[n]的时间是log级别的,而且是一个在线的数据结构, 支持随时修改某个元素的值,复杂度也为log级别。 来观察这个图: 令这棵树的结点编号为C1,C2...Cn。令每个结点的值为这棵树的
2013-07-31 11:11:05 536
原创 hdoj1241
一道dfs的题 题意:一块油田被分成m*n的网格,‘@’表示有石油,‘.’表示没有,相邻的(上下左右还有两个方向的对角线)属于同一个pocket,问一共有多少个pocket。 思路:把所有格子遍历一边,对每个格子深搜,遇到‘@’标记,防止再次访问。 下面是代码: #include #include #include using namespace std; const int maxn=1
2013-07-30 18:44:04 655
原创 hdoj1016
题意很简单不多说。 这是道dfs的题目,比较简单,特别注意,最后一个数跟第一个数的和也要是素数。 下面是代码: #include #include #include using namespace std; int a[25]; int vis[25]; int b[25]; int n; bool is_prime(int m) { int k=sqrt(m*1.0); i
2013-07-30 16:24:37 777
原创 hdoj1010
这道题作为dfs入门很好,没什么其他条件,就是单纯的dfs的步骤,当然要注意剪枝。刚开始没剪枝,tle。 下面是AC代码,在需要注意的地方加了代码。 #include #include #include #include using namespace std; int maze[15][15]; int vis[15][15]; int sx,sy,ex,ey; int n,
2013-07-30 16:22:09 738
转载 poj3083
最近在学习dfs和bfs,还不太熟,觉得这道题很好,将dfs和bfs结合了起来,刚开始自给自己做了好长时间,但就是不对,结果看了人家的代码,感觉思路又顺了一些 题意:给你一个h * w的迷宫,其中有一句话需要注意一下“Exactly one 'S' and one 'E' will be present in the maze, and they will always be locat
2013-07-28 16:56:16 540
原创 贪心算法
upc2337 Problem Description 一个正整数一般可以分为几个互不相同的自然数的和,如3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4,…。 现在你的任务是将指定的正整数n分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。 Input 只一个正整数n,(3 Output 第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的
2013-07-25 19:48:41 887
原创 快速幂
最近学习了快速幂,感觉挺实用。快速幂,就是能很快的求出某个数的幂。 基本原理:如求a的b次幂 把b转换成2进制数 该2进制数第i位的权为(2^(i-1)) 例如 a^11=a^(2^0+2^1+2^3) 11的二进制是1 0 1 1 11 = 2^3*1 + 2^2*0 + 2^1*1 + 2^0*1 因此,我们将a^11转化为算a^(2^0)*a^(2
2013-07-24 19:42:59 501
转载 ACM文件操作
C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:37 4,194 次阅读 发表评论 阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。 昨天发了一篇《C语言 使用文件输入/输出数据》,使用的是最普通的文件输入/输出方法,Felix大牛随后给了一种更简单的改进方法,
2013-07-20 20:04:15 845
转载 堆排序
分类: C/C++ 算法思想:首先将与堆相应的完全二叉树根节点中的记录移出,该记录称为待调整记录,此时根节点相当于空节点,从空节点的左右孩子中选出一个关键字较大的记录,如果该记录的关键字大于待调整记录的关键字,则将该记录上移至空节点中。 此时,原来的那个关键字较大的节点相当于空节点,从空节点的左右孩子中选出一个关键字较大的记录,如果该记录的关键字仍大于待调整记录的关键字,则将该
2013-07-19 19:52:17 449
高效awk编程
2018-06-03
hadoop-eclipse-plugin-2.7.2.jar
2016-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人