http://poj.org/problem?id=1062

一个中文题,一个多月之前我做过,当时我是用搜索写的,不过苦于卡在无法确定等级关系,所以就错了。

看了别人的博客后,我还是不是很理解所谓的枚举等级是怎样枚举,因为我觉得在递归的时候,我真的不知道怎么枚举等级。

然后今天在看到了一个人写的,枚举等级怎么枚举,我才发现我用那个搜索写的话,我还是有问题。所以我就用这个新学的dijkstra写

所谓的枚举等级,就是以每一个等级都视为最低等级来进行枚举。

比如等级限制1,而那个酋长的等级是3,那么你就应该枚举2-4,和3-5的等级的人。

 #include <stdio.h>
#include <string.h> #define inf 9999999 int m,n;
int price[],d[];
int graph[][];
int rank[];
bool mark[],limit[]; int dijkstra()
{
int result = inf;
int k,dis;
memset(mark,false,sizeof(mark));
d[ ] = ;
for(int i = ; i <= n ; i++)
d[ i ] = inf;
for(int i = ; i <= n ; i++) //dijkstra是这个循环
{
k = ;
dis = inf;
for(int j= ; j <= n ;j++)
if(!mark[ j ] && d[ j ] <= dis && limit[ j ])
{
k = j;
dis = d[ j ];
}
mark[ k ] = true;
for(int j = ; j <= n ; j++)
{
if(limit[ j ] && d[ j ] > d[ k ] + graph[ k ][ j ])
d[ j ] = d[ k ] + graph[ k ][ j ];
}
}
for(int i = ;i <= n ;i++)
{
d[ i ] += price[ i ]; //d[i] 是存储着交换i次后的价钱。
if(d[ i ] < result)
result = d[ i ];
}
return result;
} int main()
{
int x,t,v,ans = inf;
scanf("%d%d",&m,&n);
for(int i = ; i <= n ; i++) //进行构图。
for(int j = ;j <= n ; j++)
if( i == j )
graph[ i ][ j ] = ;
else
graph[ i ][ j ] = inf;
for(int i = ; i <= n ; i++)
{
scanf("%d%d%d",&price[i],&rank[i],&x);
for(int j = ; j < x ; j++)
{
scanf("%d%d",&t,&v);
graph[ i ][ t ] = v;
}
}
for(int i = ; i <= m ; i++) //这里就是枚举等级,把可以和酋长交换的人进行标记,然后进行最短路的寻找。
{
memset(limit,,sizeof(limit));
for(int j = ; j <= n ; j++)
if(rank[ j ] >= rank[ ] - m + i && rank[ j ] <= rank[ ] + i)
limit[ j ] = true;
t = dijkstra();
if(ans > t)
ans = t;
}
printf("%d\n",ans);
return ;
}

POJ 1062 ( dijkstra )的更多相关文章

  1. 昂贵的聘礼 - poj 1062 (Dijkstra+枚举)

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39976   Accepted: 11596 Description 年 ...

  2. 最短路(Dijkstra) POJ 1062 昂贵的聘礼

    题目传送门 /* 最短路:Dijkstra算法,首先依照等级差距枚举“删除”某些点,即used,然后分别从该点出发生成最短路 更新每个点的最短路的最小值 注意:国王的等级不一定是最高的:) */ #i ...

  3. POJ 1062 昂贵的聘礼

    C - 昂贵的聘礼 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit St ...

  4. POJ 1062 昂贵的聘礼(图论,最短路径)

    POJ 1062 昂贵的聘礼(图论,最短路径) Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女 ...

  5. 最短路POJ 1062 昂贵的聘礼

    C - 昂贵的聘礼 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit St ...

  6. (最短路 dijkstra)昂贵的聘礼 -- poj -- 1062

    链接: http://poj.org/problem?id=1062 昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions ...

  7. poj 1062 昂贵的聘礼 (dijkstra最短路)

    题目链接:http://poj.org/problem?id=1062 昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submission ...

  8. POJ 1062 昂贵的聘礼(带限制条件的dijkstra)

    题目网址:http://poj.org/problem?id=1062 题目: 昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submis ...

  9. POJ 1062 昂贵的聘礼(Dijkstra)

    题意 : 真真是做POJ第一次遇到中文题,好吧,虽然语言通了,我一开始也没看懂样例什么意思,题意的话就是说这个探险家想娶酋长的女儿,但是没有钱,酋长说他可以用祭司的水晶球或者皮袄来换取少花一部分钱,同 ...

随机推荐

  1. Win7下Python2.7环境安装paramiko模块

    Win7下Python2.7环境安装paramiko模块,经过安装并测试成功,整理文档如下: 1.下载安装Windows版本的Python2.7,我默认装在C:\Python27 我的python已经 ...

  2. php实现发送邮件

    smtp.php: <?php class smtp {     /* Public Variables */     var $smtp_port;     var $time_out;    ...

  3. Python之路【第三篇补充】:Python基础(三)

    参考老师:http://www.cnblogs.com/wupeiqi lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 ...

  4. 自定义验证jquery.validate

    js中填写 $(function() { validateSysConfigForm(); jQuery.validator.addMethod("validateNum", fu ...

  5. asp.net webform中使用async,await实现异步操作

    摘要 最近想着将项目中的部分耗时的操作,进行异步化.就自己弄个demo进行学习.只需下面几个步骤就可以将aspx页面中注册异步操作. demo 比如我们需要抓取某个url的内容,这个时候我们可能会有下 ...

  6. Java 线程Thread.Sleep详解

    我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢? 思考下面这两个问题: 1.假设现在是 2008-4-7 12:00:00.000,如果 ...

  7. highcharts图表中级入门之xAxis label:X(横)坐标刻度值过长截断多行(换行)显示问题说明

    在使用highcharts图表的过程中,总会碰到这样一个很是棘手的问题,横坐标刻度值太长,在不换行显示的情况下显得格外拥挤.虽然针对这一问题是可以对其刻度值进行旋转以此来避开显示拥挤问题[如何让hig ...

  8. JavaScript数组属性与方法

    Array 对象属性 属性 描述 constructor 返回对创建此对象的数组函数的引用. length 设置或返回数组中元素的数目. prototype 使您有能力向对象添加属性和方法. Arra ...

  9. nyoj 613 免费馅饼 广搜

    免费馅饼 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...

  10. CentOS的SSH,Putty配置说明

    基本资源: CentOS5.5 (32位) , Mysql6.0 ,Putty ,SSH   Step: 1.VMWare中装好CentOS    A. 可能存在ifconfig等命令无法正常识别) ...