题目:Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your ma....
                            
                            
                                分类:
编程语言   时间:
2014-07-28 11:33:50   
                                阅读次数:
278
                             
                    
                        
                            
                            
                                一开始想DP一步步迭代更新,求出到跳到最后一个的最小步数,但是时间复杂度O(nk),会超时。
再一想,发现该题只需要返回能否到达最后一个,不需要最小步数,所以迭代时候只需要保留当前能够走到的最远距离tmpMax,时间复杂度降到O(n)。
class Solution {
public:
	const int MAXVALUE = 1 << 30;
	bool canJump(int A[],...
                            
                            
                                分类:
其他好文   时间:
2014-07-26 15:30:51   
                                阅读次数:
210
                             
                    
                        
                            
                            
                                class Solution {
public:
	const int MAXVALUE = 1 << 30;
	int findMinStepToIndex(int maxNumbers[],int maxSteps,int index)
	{
		if (index == 0)
			return 0;
		int left = 1;
		int right = maxSteps;...
                            
                            
                                分类:
其他好文   时间:
2014-07-26 15:30:01   
                                阅读次数:
170
                             
                    
                        
                            
                            
                                又是一个看了题解以后还坑了一天的题…… 结果最后发现是抄代码的时候少写了一个负号。题意: 有一个n*m的网格,其中每个格子上都有0~9的数字。现在你可以玩K次游戏。 一次游戏是这样定义的: 你可以选任意之前没有走过的格子作为起点。然后走任意步,其中每一步你可以向右或者向下走任意格。假如从(x1,.....
                            
                            
                                分类:
其他好文   时间:
2014-07-24 10:15:24   
                                阅读次数:
324
                             
                    
                        
                            
                            
                                2014 多校的B题,由于我不怎么搞图论,当时碰到这个题目,我怎么想都没往网络流方面弄,不过网络流真的是个好东西,对于状态多变,无法用动规或者数据结构来很好表示的时候,非常有用这个题目要求每个点一定要访问到,并且每次访问的是没访问过的点,跳跃的方向为向右或者向下。建图的时候,分成二分图,从一个超级源...
                            
                            
                                分类:
其他好文   时间:
2014-07-24 09:44:42   
                                阅读次数:
253
                             
                    
                        
                            
                            
                                输入一个n×m网格图,每个结点的值为0~9,可以从任意点出发不超过k次,走完每个点且仅访问每个结点一次,问最终的能量最大值。不可全部走完的情况输出-1.初始能量为0。 而结点(x,y)可以跳跃到结点(x,y+dy)或(x+dx,y)。消耗能量为跳跃前后结点的曼哈顿距离 - 1 。若跳跃前后的结点的值...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 22:12:27   
                                阅读次数:
261
                             
                    
                        
                            
                            
                                hdu 4862 Jump (费用流)
建图:新建一个temp节点,源点像temp连一条流量为k,费用为0的边,表示最多有k条路径。将原图每个点拆为两个点(i,i')表示流入该点和流出该点。temp像每个i连边,容量为1,费用为0,表示每个点都可以作为起点。为了保证每个点都被走到,每个的i向i’建边,容量为1,费用为-INF,表示费用非常非常小,它对流非常具有吸引力。每个i‘向能去的j建边,容量...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 17:05:00   
                                阅读次数:
307
                             
                    
                        
                            
                            
                                题目地址:HDU4862
最小费用流做的还是太少。建图想不出来。。。
直接引用官方题解的话吧。。。
最小K路径覆盖的模型,用费用流或者KM算法解决,构造二部图,X部有N*M个节点,源点向X部每个节点连一条边,流量1,费用0,Y部有N*M个节点,每个节点向汇点连一条边,流量1,费用0,如果X部的节点x可以在一步之内到达Y部的节点y,那么就连边x->y,费用为从x格子到y格子的花费能量减去得到的...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 13:09:07   
                                阅读次数:
357
                             
                    
                        
                            
                            
                                题意:
n*m的格子  每个格子有个数字  你可以任选起点  每一步向下或者向右  每一步的花费是曼哈顿距离-1  如果一步的两端的格子数字一样那么你会得到这个数字的花费  问  最多选k次起点  在遍历完所有格子前提下最多剩下多少花费
思路:
题目可以表示为用最多k条路径去覆盖n*m  思路就转向了二分图
X集合表示每个点的出  Y集合表示入  如果f格子能走到g格子  那么建边...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 13:07:06   
                                阅读次数:
277
                             
                    
                        
                            
                            
                                gg。。。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#define ll int
#define N 220
#define M 12345
#define inf (1<<29)
//注意 点标必须是 [0 - 汇点]
//双向边,注...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 00:09:19   
                                阅读次数:
329