题目链接:http://poj.org/problem?id=3615 题意:大致题意:有N个木桩,和M个木桩对之间的高度差(从x跳到y需要往上跳的高度).从x跳跃到y的路径消耗的体力值是路径中的一个最大高度差.求一条消耗体力最小的路径. #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; #define INF 0x3f3f3f3f ][]; int main…
题目链接:http://poj.org/problem?id=3615 思路:map[i][j]表示顶点i,j之间的最高的障碍物,于是题目要求的是最高障碍物的最小值,不就是min(map[i][j],max(map[i][k],map[k][j]))嘛. http://paste.ubuntu.com/5925170/…
Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31490   Accepted: 10150 Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her,…
转自:http://blog.csdn.net/lilongherolilong/article/details/6624390 先挖好坑,明天该去郑轻找虐 RMQ(Range Minimum/Maximum Query)问题是求区间最值问题.你当然可以写个O(n)的(怎么写都可以吧=_=),但是万一要询问最值1000000遍,估计你就要挂了.这时候你可以放心地写一个线段树(前提是不写错)应该不会挂.但是,这里有更简单的算法,就是ST算法,它可以做到O(nlogn)的预处理,O(1)地回答每个询…
http://poj.org/problem?id=3615 floyd 最短路径的变形 dist[i][j]变化为 : i j之间的最大边 那么输入的时候可以直接把dist[i][j] 当作i j 之间的边进行输入 转移方程 dist[i][j] = max(dist[i][j], min(dist[i][k], dist[k][j])) #include <iostream> #include <string.h> #include <stdio.h> #defin…
寻找旋转排序数组中的最小值 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2). 你需要找到其中最小的元素. 你可以假设数组中不存在重复的元素. 解题 可以线性查找 ,逆序后的数组 两个升序的数组,前面的数组元素都比后面数组元素大 数组降序的时候后面的数就是答案了 class Solution: # @param num: a rotated sorted array # @return: the minimum number in…
寻找旋转排序数组中的最小值 II 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2). 你需要找到其中最小的元素. 数组中可能存在重复的元素. 解题 暴力直接线性查找 或者,线性找到第一个开始降序的位置对应的数 应该考虑二分法 递归 + 二分 public class Solution { /** * @param num: a rotated sorted array * @return: the minimum number in…
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e.,  [0,1,2,4,5,6,7] might become  [4,5,6,7,0,1,2]). Find the minimum element. The array may contain duplicates. Example 1: Input: [1,3,5] Output: 1 Exa…
想知道 Java 基本数据类型最大值极限和最小值极限,写个小程序就很容易知道. 测试 Integer, Long, Float 和 Double 的最大值和最小值,代码如下: public static void main(String[] args) { System.out.println("Integer.MIN_VALUE = " + Integer.MIN_VALUE); System.out.println("Integer.MAX_VALUE = "…
160-寻找旋转排序数组中的最小值 II 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2). 你需要找到其中最小的元素. 数组中可能存在重复的元素. 注意事项 The array may contain duplicates. 样例 给出[4,4,5,6,7,0,1,2] 返回 0 标签 分治法 二分法 思路 使用二分法,比较 mid 与 mid+1 的内容,若 num[mid] > num[mid+1] ,则最小元素为 num[m…