POJ1062

虽然是中文题目但是还是有一定几率都不准题目意思的:1.所有可能降价的措施不是降价多少钱而是降至多少钱2.等级范围:是你所走的那一条路中所有人中最好最低等级差不允许超过limit限制

思路确实没有想好:导致我也苦想冥思了很久,没有想到逆向构思其实这个题意你如果理解了,算起来也是逆向的~~肯定得花钱入手一个原价的然后层层入手优惠的直至买到1号物品,所以加了一个开始节点0,构建路也是逆向,例如买2可以优惠1,我就可以建2 -》1

第二点:对于等级的处理,这个真的是用了许多的方法,都没能全面的起作用,看了题解之后,明白了:枚举等级空间,因为我的等级空间是会首受限制的但是一开始就是m对于5级的1限制我要枚举的是假想的最大等级—也就是3,5|4,6,|5,7   也就是我要交流的就是和最低等级为3最高等级为5或者最低等级为4 最高等级为6 ……的

接下来,你会发现这个题的代码,和这个的思路一样的好看

#include <string.h>
#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn = 110;
int mp[maxn][maxn];
int dis[maxn],vis[maxn];
struct node
{
int price,state;
}data[maxn];
int lim,n;
queue<int> q;
int spfa(int l,int r)
{
while(q.size())q.pop();
memset(vis,0,sizeof(vis));
for(int i = 1;i <= n;i++)
{
dis[i] = inf;
}
dis[0] = 0;vis[0] = 1;
q.push(0);
while(q.size())
{
int now = q.front();q.pop();
vis[now] = 0;
for(int i = 1;i <= n;i++)
{
if(data[i].state < l || data[i].state > r)continue;
if(dis[i] > dis[now] + mp[now][i])
{
dis[i] = dis[now] + mp[now][i];
if(!vis[i])
{
vis[i] = 1;
q.push(i);
}
}
}
}
return dis[1];
} int main()
{ while(~scanf("%d%d",&lim,&n))
{
for(int i = 0;i <= n;i++)
{
for(int j = 0;j <= n;j++)
{
i == j ? mp[i][j] = 0 : mp[i][j] = mp[j][i] = inf;
}
}
int x;
for(int i = 1;i <= n;i++)
{
scanf("%d%d%d",&data[i].price,&data[i].state,&x);
mp[0][i] = data[i].price;//倒图思想,我一开始肯定原价得进手一个图
while(x--)
{
int a;
scanf("%d",&a);
scanf("%d",&mp[a][i]);
}
}
int ans = inf;
for(int i = data[1].state - lim;i <= data[1].state;i++)
{
ans = min(ans,spfa(i,i+lim));
}
printf("%d\n",ans);
}
return 0;
}

POJ1062不错的题——spfa倒向建图——枚举等级限制的更多相关文章

  1. The Shortest Path in Nya Graph---hdu4725(spfa+扩点建图)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4725  有n个点,每个点都有一个层l[i],相邻层的边有一条无向带权边,权值为都为C,另外 ...

  2. HDU 4725 The Shortest Path in Nya Graph(spfa+虚拟点建图)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4725 题目大意:有n层,n个点分布在这些层上,相邻层的点是可以联通的且距离为c,还有额外给出了m个条边 ...

  3. Newnode's NOI(P?)模拟赛 第三题 (主席树优化建图 + tarjan)

    题目/题解戳这里 这道题题目保证a,b,ca,b,ca,b,c各是一个排列-mdzz考场上想到正解但是没看到是排列,相等的情况想了半天-然后写了暴力60分走人- 由于两两间关系一定,那么就是一个竞赛图 ...

  4. 【spfa训练】HDU4725 (层级建图)

    HDU4725 题目大意:一些节点分布在不同的层上,已知相邻的层可以往来距离为c,在给你一些已知的边,问你点1-n的最短路 分析:越往后做,越觉得最短路的考点已经不是spfa算法还是dijkscar算 ...

  5. HDU 4370 0 or 1(spfa+思维建图+计算最小环)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4370 题目大意:有一个n*n的矩阵Cij(1<=i,j<=n),要找到矩阵Xij(i< ...

  6. Codeforces 938D. Buy a Ticket (最短路+建图)

    <题目链接> 题目大意: 有n座城市,每一个城市都有一个听演唱会的价格,这n座城市由m条无向边连接,每天变都有其对应的边权.现在要求出每个城市的人,看一场演唱会的最小价值(总共花费的价值= ...

  7. bzoj2662: [BeiJing wc2012]冻结 最短路 建图

    好久没有1A题啦♪(^∇^*) 一个sb建图,我居然调样例调了10min 看起来是双向边,其实在建图的时候要当成有向图, 否则他会时间倒流(233) 把每个点裂成k个点,然后把每条边裂成4条边(正向反 ...

  8. 洛谷3783 SDOI2017 天才黑客(最短路+虚树+边转点+线段树优化建图)

    成功又一次自闭了 怕不是猪国杀之后最自闭的一次 一看到最短路径. 我们就能推测这应该是个最短路题 现在考虑怎么建图 根据题目的意思,我们可以发现,在本题中,边与边之间存在一些转换关系,但是点与点之间并 ...

  9. Invitation Cards(邻接表+逆向建图+SPFA)

    Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 17538   Accepted: 5721 Description In ...

随机推荐

  1. 基于JS的文本验证

    1,不能为空 <input type="text" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert(' ...

  2. 查看android sha1

    Android百度定位SDK自v4.0版本之后开始引入了百度地图开放平台的统一AK验证体系.通过AK机制,开发者可以更方便.更安全地配置自身使用的百度LBS资源(如设置服务配额等).随着LBS开放平台 ...

  3. iperf——网络性能测试工具

    一.前言 工作中遇到需要测试Linux服务器网卡占用率的场景,查阅资料后,发现iperf是一款合适的网络测速工具. 下面讲解一下如何使用iperf做网络性能测试. 二.基础知识 先补充一些基础知识: ...

  4. 115. Distinct Subsequences (String; DP)

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  5. 91. Decode Ways (Array; DP)

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  6. 迭代器&生成器&yield异步

    迭代器 #迭代器是访问集合元素的一种形式,迭代器从集合的第一个元素开始访问,直到所有的元素被访问# 结束才结束,迭代器只能往前访问,不能往后访问,比如你先访问1,在访问2,在访问3.如果已经# 访问到 ...

  7. Python requests 使用心得

    最近在用requests写一些项目,遇见了一些问题,百度了很多,有些都不太好使,最后看了下requestsAPI文档,才明白了很多,最后项目趋于稳定.看来学东西还是API文档比较权威啊~ 问题场景 项 ...

  8. ADF backing Bean中常用的代码

    // 刷新iterator bindings.refreshControl(); iterBind.executeQuery(); iterBind.refresh(DCIteratorBinding ...

  9. 本地Maven环境配置

    本地Maven环境配置 下载配置文件:http://10.1.10.138:6060/root/DevelopmentSpecification/archive/master.zip 解压master ...

  10. LINQ to Entities 不支持 LINQ 表达式节点类型“ArrayIndex”。

    错误原因: bool res1 = S_ROLE_MENU_PURVIEWCODE_Manage.Delete(c => c.MPC_CODE == strs[0]); linq不能写strs[ ...