poj 1062昂贵的聘礼(枚举最高地位然后最短路)
来源:互联网 发布:服务器端 java 编辑:程序博客网 时间:2024/06/05 18:43
将题意转化为图很简单,但是如何去满足一条路等级差不大于m,一开始理解错了,直接用国王的等级去做,显然错了,由于对于任何一条路径,等级的最大值一定是某一个物品主人,且n的值不大,只有100,故我们枚举最大的那个主人,每次去截取一张新的图,然后对每张图diskla就好了;
#include<iostream>
#define size 109using namespace std;
const int inf=999999;
int dmin,dmax,m,n;
int dis[size],pos[size],use[size],s[size];
int f[size][size];
void disk()
{
int i,j,k,t,d;
memset(dis,inf,sizeof(dis));
memset(s,0,sizeof(s));
dis[0]=0;
for(i=0;i<=n;i++)
{
d=inf;
for(j=0;j<=n;j++)
{
if(use[j]==0&&s[j]==0&&d>dis[j])
{
d=dis[j];
k=j;
}
}
s[k]=1;
for(t=0;t<=n;t++)
if(f[k][t]!=inf&&use[t]==0&&s[t]==0)
dis[t]=min(dis[t],dis[k]+f[k][t]);
if(k==1)
break;
}
}
void slove()
{
int i,j,ans;
ans=inf;
for(i=1;i<=n;i++)
{
memset(use,0,sizeof(use));
dmax=pos[i];dmin=dmax-m;
for(j=1;j<=n;j++)
{
if(pos[j]>dmax||pos[j]<dmin)
use[j]=1;//不可用
}
disk();
//cout<<dis[1]<<endl;
if(dis[1]<ans)
ans=dis[1];
}
printf("%d\n",ans);
}
int main()
{
int i,j,p,d,x,y,pp;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(f,inf,sizeof(f));
memset(use,0,sizeof(use));//都为可用
for(i=1;i<=n;i++)
{
scanf("%d%d%d",&p,&d,&x);
f[0][i]=p;
pos[i]=d;
for(j=1;j<=x;j++)
{
scanf("%d%d",&y,&pp);
f[y][i]=pp;
}
}
slove();
}
return 0;
}
- poj 1062昂贵的聘礼(枚举最高地位然后最短路)
- POJ 题目1062 昂贵的聘礼(最短路,枚举)
- (最短路 + 枚举) poj 1062 昂贵的聘礼
- POJ 1062 昂贵的聘礼 最短路枚举等级限制
- POJ--1062--昂贵的聘礼【dijkstra_heap+枚举】最短路
- POJ 1062 昂贵的聘礼(最短路+枚举)
- poj 1062 昂贵的聘礼 【枚举最短路】
- [POJ 1062]昂贵的聘礼[最短路][枚举]
- [POJ 1062] 昂贵的聘礼 [最短路+枚举] [dijkstra]
- 1062 昂贵的聘礼 //枚举+最短路
- poj 1062 昂贵的聘礼(最短路)
- POJ 1062 昂贵的聘礼 最短路
- poj 1062昂贵的聘礼 最短路
- poj 1062 昂贵的聘礼(最短路)
- POJ 1062 昂贵的聘礼 最短路
- POJ 1062 昂贵的聘礼 最短路
- POJ 1062 : 昂贵的聘礼 - 最短路Dijkstra+枚举(难)
- POJ 1062 昂贵的聘礼(限制的最短路)
- 如何让checkbox复选框只能单选
- usaco4.1nuggets DP给出一些数,求不能由这些数(每个数的个数任意)相加而成的最大的数
- HttpSession session = request.getSession()与HttpSession session = request.getSession(true)有何区别?
- Linux内核模块导出后无法调用问题解决(模块间函数调用通讯)
- EDA 软件启动
- poj 1062昂贵的聘礼(枚举最高地位然后最短路)
- Gson User Guide
- tomcat6 1000并发量配置
- perl参考文档
- dbm数据库学习笔记
- waitpid WNOHANG WUNTRACED WCONTINUED
- Linux input 三
- Nhibernate Hql查询使用 sum 和 case 组合
- urlrewrite中多参数的问题 有代码的