
算法
Mooner_guo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ACM想法题
描述:中国科技大学OJ-1106矩阵乘以矩阵的逆 http://acm.hust.edu.cn/problem.php?cid=1106&pid=8 /* 题意:矩阵A为0,1矩阵,求矩阵B等于A乘以A的逆,然后求B有多少个1 思路:矩阵乘以矩阵的逆相当于A每行和所有的行相乘 。所以,比较矩阵A每列对应有多少个相等的1, 循环A的行,看第i行的每列最大有多少个原创 2012-12-29 15:16:54 · 723 阅读 · 0 评论 -
堆排序
package com.algorithm.sort; import java.util.Scanner; /** * 堆排序 * 算法思路: * 一维数组除了能表示线性结构外,还能表示完全二叉树 * 选择排序的思想是,固定位置比较n-1次,获得数字,固定下一个位置,比较n-2次。。。 * 但是这样,后面的比较有重新比较,有的数字是比较过的。 * 而堆排序正是利用树形结构,对原创 2014-07-09 12:37:23 · 575 阅读 · 0 评论 -
判断一个数字是否为2的阶次方
如8,16,64,256都是2的阶次方。 解析: 2的n次方,换成2进制,则首位都是1,后面都是若干个0。2^n-1则是若干个1。直接拿这个数字进行&与运算,得到的值总是0。例如8=1000 7=0111 2个数字进行&运算,得到的是0。那么我们就可以拿来判断了。即表达式为: if(d&(d-1) == 0){ return true; }else{return fa原创 2015-09-27 09:17:17 · 1713 阅读 · 0 评论 -
杭电2571 命运-DP问题
杭电2571 命运 http://acm.hdu.edu.cn/showproblem.php?pid=2571 /* 题意:从(1,1)点到(n,m)点,求最大命运值 解法: DP问题,dp[i][j]表示(i,j)的最大命运值,从(1,1)到(n,m)一直算下去,dp[n][m]即为所求 状态转移方程 dp[i][j]=MAX(dp[i][j原创 2013-01-19 17:02:36 · 725 阅读 · 0 评论 -
杭电1505 City Game-DP问题
杭电1505 City Game http://acm.hdu.edu.cn/showproblem.php?pid=1505 /*题目大意: N*M矩阵,F为空,R不为空,求最大子矩阵的3*面积 解题思路: 求矩阵的高度h[i][j]=h[i-1][j]+1(op[i][j]='F')否则为h[i][j]=0. 接下来就与1506求子矩阵的面积类似了。对每行h[i]做处理,原创 2013-01-19 14:50:12 · 847 阅读 · 0 评论 -
杭电OJ-1506 Largest Rectangle in a Histogram --DP问题
http://acm.hdu.edu.cn/showproblem.php?pid=1506 题意: 求最大矩形面积,即给定每个小矩形的高度hight[i],要从左右两边求出hight[x]>=hight[i]&&hight[y]>=hight[i], 要求出最大的ARE=[x,y]*hight[i]。DP问题。 l[]和r[]表示从左或者从右开始可以扩展到的位置 如原创 2013-01-01 19:07:50 · 700 阅读 · 0 评论