这里有个非常坑的地方,还有比酋长地位还更高的人,我也是看了论坛才知道。。。

在这里我把编号1看成终点,优惠价格看成相应的替代品编号到可替代品编号的权值,比如说有了2再加8000就到了1,那么2到1的弧长权值就是8000,dis[i]表示到编号i花费的最小金币数,初始的dis[i]都是物品本身价格,这里还有一个等级限制,我也看了下论坛,主要是枚举长度为m的所有区间,在每一个区间里都求一次最短路,求最小的值作为答案。

以下是我的代码,偷了懒,时间复杂度比较高:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
#define inf 0x3f
int map[][];
int n,m,k,t,ans,cnt;
int dis[],dis1[],rank[];
struct node{
int u,v,w;
}edge[];
void find(int a,int b)//现在我找在区间[a,b]之间的最短路
{
for(int i=;i<=n;i++) //把初始dis复制一份,因为求最短路会改变dis的数据
dis1[i]=dis[i];
for(int i=;i<n;i++) //n-1次循环
{
for(int j=;j<cnt;j++) //遍历所有边
{
int u=edge[j].u;
int v=edge[j].v;
int w=edge[j].w;
if(rank[u]>=a&&rank[u]<=b&&rank[v]>=a&&rank[v]<=b&&dis1[v]>dis1[u]+w)//选择编号在区间里的物品
{
dis1[v]=dis1[u]+w;
if(v==)
{
ans=min(ans,dis1[v]);
}
}
}
}
}
int main()
{
while(cin>>m>>n)
{
cnt=;
int max1=,min1=inf;
for(int i=;i<=n;i++)
{
cin>>dis[i]>>rank[i]>>k;
if(rank[i]>max1)
max1=rank[i];
if(min1>rank[i])
min1=rank[i]; for(int j=;j<k;j++)
{
int u,w,v;
cin>>u>>w;
edge[cnt].u=u;
edge[cnt].v=i;
edge[cnt].w=w;
cnt++;
}
}
ans=dis[];
for(int i=min1;i<=max1;i++)
{
int j=min(i+m,max1);
if(rank[]>=i&&rank[]<=j)//rank[1]一定要在区间里
find(i,j);
}
cout<<ans<<endl;
}
return ;
}

枚举+最短路 poj1062的更多相关文章

  1. poj1062昂贵的聘礼(枚举+最短路)

    题意:就是一个点能够被另一个点取代,通过花费一定的金币,注意就是你和某个人交易了,如果这个人的等级和酋长的等级差的绝对值超过m,酋长就不会和你交易了: 思路:这里要注意到,我们最终的目的是找到一条最短 ...

  2. POJ 4046 Sightseeing 枚举+最短路 好题

    有n个节点的m条无向边的图,节点编号为1~n 然后有点权和边权,给出q个询问,每一个询问给出2点u,v 输出u,v的最短距离 这里的最短距离规定为: u到v的路径的所有边权+u到v路径上最大的一个点权 ...

  3. UVA 11374 Airport Express(枚举+最短路)

    枚举每条商业线<a, b>,设d[i]为起始点到每点的最短路,g[i]为终点到每点的最短路,ans便是min{d[a] + t[a, b] + g[b]}.注意下判断是否需要经过商业线.输 ...

  4. hdu 2363(枚举+最短路好题)

    Cycling Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  5. 洛谷 P1522 牛的旅行 Cow Tours——暴力枚举+最短路

    先上一波题目  https://www.luogu.org/problem/P1522 这道题其实就是给你几个相互独立的连通图 问找一条新的路把其中的两个连通图连接起来后使得新的图中距离最远的两个点之 ...

  6. Codeforces Round #372 (Div. 1) B. Complete The Graph (枚举+最短路)

    题目就是给你一个图,图中部分边没有赋权值,要求你把无权的边赋值,使得s->t的最短路为l. 卡了几周的题了,最后还是经群主大大指点……做出来的…… 思路就是跑最短路,然后改权值为最短路和L的差值 ...

  7. hdu2363 枚举最短路

    (1) 二分     把所有的高度都拿过来,组合起来,sort一遍,然后二分,找到能连通的最小的那个,但这里存在一起情况,就是遇到高度差相等的时候会bug.... (2) 枚举 连通直接break   ...

  8. 【转】最短路&差分约束题集

    转自:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548 A strange lift基础最短路(或bfs)★254 ...

  9. poj 3255 Roadblocks 次短路(两次dijksta)

    Roadblocks Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total S ...

随机推荐

  1. 选择、操作web元素

    11月1日 什么是web元素 Selenium自动化主要就是:选择界面元素,操作界面元素(输入操作:点击.输入文字.拖拽等,输出操作:获取元素的各种属性),根据界面上获取的数据进行分析和处理 选择元素 ...

  2. Sonya and Exhibition 1004B

    B. Sonya and Exhibition time limit per test 1 second memory limit per test 256 megabytes input stand ...

  3. Spring事务异常rollback-only

    转自:https://blog.csdn.net/sgls652709/article/details/49472719 前言 在利用单元测试验证spring事务传播机制的时候出现了下面的异常: Tr ...

  4. Linux tr命令使用方法

    tr命令主要用于删除文件中控制字符或进行字符转换.本文主要介绍tr命令的基本语法和使用实例. tr基本语法 tr命令格式:tr [ -d ] [ -c ] [ -s ] [ 字符串1 ] [ 字符串2 ...

  5. LeetCode OJ 60. Permutation Sequence

    题目 The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of th ...

  6. 半精度浮点数取5bit指数位

    半精度浮点是指用16bit表示一个浮点数,最高1bit为符号位,中间5bit为指数a,低10bit为尾数b Value = (符号位)(1+b/1024)*(2^(a-16)) 程序很简单,用pyin ...

  7. windows下配置mysql环境变量 - 使用cmd访问mysql(图)

    window7为例,右击“计算机” - 单击“属性” - 单击“高级系统设置” - 单击“环境变量”,剩下看图: <图1> 右下角"环境变量". <图2>选 ...

  8. 在前台页面写java代码,导入java的包

  9. 学JS的心路历程-函式(二)arguments

    参数(argument)与函式参数(parameter) 在讨论函式时,很多人都会把这两个搞混,我自己也不例外. 虽然讲错别人也听得懂,但是我们还是要搞清楚这两个的定义到底是什么! 参数是当我们呼叫函 ...

  10. 拓扑排序-有向无环图(DAG, Directed Acyclic Graph)

    条件: 1.每个顶点出现且只出现一次. 2.若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面. 有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说. 一 ...