摘要:        
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3790最短路问题,因为结果会超int所以最终结果要用__int64位保存。当距离相等的时候,去费用小的路走。#include#includeusing namespace std;#define INF (1v = end; p->d = d; p->cost = cost; p->next = head[start]; head[start] = p++;}void spfa(int start){ int i; for(i = 1; i Q; Q.pus...    阅读全文
posted @ 2012-09-05 21:58
一生挚爱
阅读(117)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2544简单最短路问题#include#define INF 1 dis[i] + map[i][j]) dis[j] = dis[i] + map[i][j]; } } } for(i = 1; i dis[i] + map[i][j]) return false; } return true;}int main(){ int i,j,a,b,c; ...    阅读全文
posted @ 2012-09-05 21:54
一生挚爱
阅读(134)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1548本题为简单最短路,构图方法为如果在第i层可以上升Ki层则增加边i - >(i+Ki) 否则不加边,如果可以下降Ki层则增加边i-> (i - Ki)#include#include#includeusing namespace std;#define maxn 205#define INF (1que;	que.push(start);	while(!que.empty())	{ int now = que.front(); vis[now] = true; que.pop();     阅读全文
posted @ 2012-09-05 21:51
一生挚爱
阅读(170)
评论(0)
推荐(0)
        
            
        
        
摘要:        
首先,为了说话方便,列出一些术语:在启发式搜索中,对于每个状态 x,启发函数 f(x) 通常是这样的形式:f(x) = g(x) + h(x)其中 g(x) 是从初始状态走到 x 所花的代价;h(x) 是从 x 走到目标状态所需要的代价的估计值。相对于 h(x),还有一个概念叫 h*(x),表示从 x 走到目标状态所需要的实际最小代价(当然,这个值有时我们是事先无法知道的)。如果在你的启发函数里,能保证 h(x) x.v 就称作 Px 的偏离边(deviation edge); Px 上从 x.pre 到 t 的这一段子路径就称为 Px 的偏离路径(deviation path)。为什么叫作.    阅读全文
posted @ 2012-09-05 15:16
一生挚爱
阅读(498)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1869解题思路:本题为简单最短路,只需要求出两两间的距离,如果存在一个两两间距离大于7的点的话则输出No如果两两间的距离都小于或等于7则输出Yes#include#define INF (1 map[i][k] + map[k][j]) map[i][j] = map[i][k] + map[k][j];}int main(){	int i,j,a,b;	while(scanf("%d%d",&n,&m)!= EOF)	{ for(i = 0; i 7) flg     阅读全文
posted @ 2012-09-05 11:14
一生挚爱
阅读(202)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3117解题思路:很显然费波纳数的后四位存在周期,通过测试可以发现后四位的周期为15000,所以后四位可以打表得出,前四位是参考了别人的思路才做出来的。因为费波纳数f[n] = 1/sqrt(5)(((1+sqrt(5))/2)^n+((1-sqrt(5))/2)^n).很显然当n非常大的时候(1-sqrt(5))/2)^n非常的小以至于可以忽略,假设F[n]可以表示成 t * 10^k(t是一个小数),那么对于F[n]取对数log10,答案就为log10 t + K,此时很明显log10 t#inc    阅读全文
posted @ 2012-09-05 10:24
一生挚爱
阅读(142)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2962方法一:使用spfa最短路算法,二分查找最大高度。运行结果:2962140MS612K1790 BC++#include#include#includeusing namespace std;#define INF (1Q;	Q.push(start);	while( !Q.empty() )	{ int now = Q.front(); Q.pop(); vis[now] = false; for(node *p = head[now] ; p ; p = p->next) { ...    阅读全文
posted @ 2012-09-05 08:40
一生挚爱
阅读(162)
评论(0)
推荐(0)
        
                    
                
浙公网安备 33010602011771号