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. 吴裕雄 实战PYTHON编程(7)

    import os from win32com import client word = client.gencache.EnsureDispatch('Word.Application')word. ...

  2. python 形参

    def fun(x="dx",y="dy"): print "fun------" print x print y fun()fun(&qu ...

  3. docker 操作

    docker daemon 设置代理 http_proxy=109.105.4.17:8118 & systemctl start docker centos: Edit /etc/sysco ...

  4. css字体加粗

    参考 https://zhidao.baidu.com/question/2138403197991538308.html font-weight:bold;

  5. window环境mysql解压版配置

    1.下载并解压 到官网下载mysql-5.5.10-win32.zip,然后将mysql解压到任意路径,如:C:\mysql-5.5.10-win32 2.设置环境变量 打开计算机->属性-&g ...

  6. centos 系统下查看时间时区以及修改

    1.系统时间查看及修改: Centos 6 查看系统时间:# date

  7. Python3 len()方法

    Python3 len()方法  Python3 字符串 描述 Python len() 方法返回对象(字符.列表.元组等)长度或项目个数. 语法 len()方法语法: len( s ) 参数 s - ...

  8. Python3 open() 函数

    Python3 open() 函数  Python3 内置函数 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 ...

  9. 139. Word Break (String; DP)

    Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa ...

  10. PHP下ajax跨域的解决方案之CORS

    由于安全的限制(同源策略,javascript只能访问同域名下的内容),如果需要进行跨域操作,那就免不了要进行跨域.   CORS(跨域资源共享,Cross-Origin Resource Shari ...