POJ 1062 dij
一道读题读的不明所以的题...
每个人只能接受和自己等级差距不超过m的人进行交易 包括间接交易
所以我们可以枚举每一个长度为m的围绕着酋长的等级区间 每次都对这个等级区间内的人进行操作 求dis[1]
在这里的建图方式是很难得的灵光一现呢..
将0点作为源点 每一个物品的本身直接购买的价值设为初始值 对它们进行所给等级区间允许内的松弛操作 找出其中最小的dis[1]
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<math.h>
#include<queue>
#include<iostream>
using namespace std;
int m,n;
int dis[105];
int a[105];
struct node
{
int v;
int nex;
int w;
};
node b[30050];
int point [105];
int level[105];
bool vis[105];
int cnt;
void init()
{
cnt=0;
for(int i=1; i<=n; i++)
point[i]=-1;
for(int i=1; i<=n; i++)
vis[i]=true;
}
void add(int u,int v,int w)
{
b[cnt].v=v;
b[cnt].w=w;
b[cnt].nex=point[u];
point[u]=cnt;
cnt++;
}
void dij(int l,int r)
{
for(int i=1; i<=n; i++)
{
int p=-1;
int minn=999999999;
for(int k=1; k<=n; k++)
{
if(vis[k]&&minn>dis[k])
{
minn=dis[k];
p=k;
}
}
if(p==-1)
return ;
vis[p]=false;
for(int tt=point[p]; tt!=-1; tt=b[tt].nex)
{
int v=b[tt].v;
int w=b[tt].w;
if(level[v]>=l&&level[v]<=r&&level[p]>=l&&level[p]<=r&&vis[v])
{
if(dis[v]>w+dis[p])
{
dis[v]=dis[p]+w;
}
}
}
}
}
int main()
{
while(~scanf("%d%d",&m,&n))
{
init();
for(int i=1; i<=n; i++)
{
int p;
int l,x;
scanf("%d%d%d",&p,&l,&x);
level[i]=l;
a[i]=p;
for(int k=1; k<=x; k++)
{
int d;
int w;
scanf("%d%d",&d,&w);
add(d,i,w);
}
}
for(int i=1; i<=n; i++)
dis[i]=a[i];
int ans=999999999;
for(int l=level[1]-m; l<=level[1]; l++)
{
int r=l+m;
for(int i=1; i<=n; i++)
vis[i]=true;
for(int i=1; i<=n; i++)
dis[i]=a[i];
dij(l,r);
if(ans>dis[1])
ans=dis[1];
}
printf("%d\n",ans);
}
}
POJ 1062 dij的更多相关文章
- POJ 1062 昂贵的聘礼
C - 昂贵的聘礼 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit St ...
- 最短路(Dijkstra) POJ 1062 昂贵的聘礼
题目传送门 /* 最短路:Dijkstra算法,首先依照等级差距枚举“删除”某些点,即used,然后分别从该点出发生成最短路 更新每个点的最短路的最小值 注意:国王的等级不一定是最高的:) */ #i ...
- POJ 1062 昂贵的聘礼(图论,最短路径)
POJ 1062 昂贵的聘礼(图论,最短路径) Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女 ...
- 最短路POJ 1062 昂贵的聘礼
C - 昂贵的聘礼 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit St ...
- POJ 1062 昂贵的聘礼(dij+邻接矩阵)
( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<cstring> #include<cstd ...
- (最短路 dijkstra)昂贵的聘礼 -- poj -- 1062
链接: http://poj.org/problem?id=1062 昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions ...
- POJ 1062 限制点
http://poj.org/problem?id=1062 昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 50 ...
- POJ 1062 ( dijkstra )
http://poj.org/problem?id=1062 一个中文题,一个多月之前我做过,当时我是用搜索写的,不过苦于卡在无法确定等级关系,所以就错了. 看了别人的博客后,我还是不是很理解所谓的枚 ...
- POJ 1062 昂贵的聘礼 最短路 难度:0
http://poj.org/problem?id=1062 #include <iostream> #include <cstring> #include <queue ...
随机推荐
- Mysql sql查询性能侦查
Mysql 服务性能优化配置:http://5434718.blog.51cto.com/5424718/1207526[该文章很好] Sql查询性能优化 对Sql进行优化,肯定是该Sql运行未能达到 ...
- Servlet获取参数
package action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Servlet ...
- Ant基本使用指南
近期碰到了其他人在讨论这个ant,已经很多人在使用,故对他进行收集资料进了解,以便方便去使用.同时,在学习struts+spring+hibernate,尤其是Appfuse的过程中大量涉及到ant的 ...
- php 练习
下拉样式 <select> <?php $a = array( array("n001 汉族"), array("n002 回族"), arr ...
- scp 指定端口
scp -P33033 zp.tar root@111.222.123.01:/da1/web/zhaopin.shouhuobao.com #sshd的端口指定的是33033
- ubuntu 安装tigervnc
root@iZ25q0jd99eZ:~# apt-get install tigervnc Reading package lists... Done Building dependency tree ...
- vi 命令 用法(转)
一.Unix编辑器概述 编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件.Unix及其相似的ix 操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一 ...
- Java Hour 19 List
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为19 Hour,请各位不吝赐教. List Arr ...
- Struts2 Convention插件的使用
转自:http://chenjumin.iteye.com/blog/668389 1.常量说明 struts.convention.result.path="/WEB-INF/conten ...
- BFS+模拟 ZOJ 3865 Superbot
题目传送门 /* BFS+模拟:dp[i][j][p] 表示走到i,j,方向为p的步数为多少: BFS分4种情况入队,最后在终点4个方向寻找最小值:) */ #include <cstdio&g ...