poj1062 最短路】的更多相关文章

题意:有n个物品,任务是得到1号物品,现在每个物品有它的主人,你可以用金钱购买物品,当然也可以用其他物品加上优惠的价格换取,但是有个要求,因为每个物品的主人有各自的等级,你所交易过的人中,等级差不能超过一个给定的值,问得到1号物品最少要花费多少钱. 其实就是最短路,从0到各物品的花费是物品的直接购买价格,然后可以通过一个物品换得其他物品,那就可以建边,权为优惠价格.然后由于有等级限制,所以可以枚举最低等级,然后最短路的计算中只考虑等级在最低等级到其对应的等级上限之间的点,然后取最小值作为答案就行…
(最近总是有想让我的小博客更加充实的冲动,遇见一个不平常的题就想写下来.今天这个题姑且算是同学推荐的好题,很有意思,志之) 题目 题面 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲(哪里都有想桃子的人).酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求.酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币.如果你能够弄来他的水晶球,那么只要5000金币就行了."探险家就跑到大祭司那里,…
昂贵的聘礼 poj-1062 题目大意:原文链接?不是英文题,自己看 注释:$1\le N \le 100$. 想法:开始的想法有些过于简单,因为落下了一个条件:就是等级限制是一条路径上的任意两点而不是相邻两点.所以我们考虑枚举当前可接受等级的区间.显然最多只有100个,然后我们用Dijkstra或者spfa求单源最短路即可. 下面我们思考如何建图: 其中,low[i][j]表示j物品可以使得i物品降价为low[i][j],val[i]表示单独购买 i 物品所需要的金币数. 然后我们通过离散化使…
POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. 思路: 这个题目的转化比较巧妙,由于每个点都可以由一些点转移过来,有可能降低了到这个点的费用.于是就想到了建图跑最短路.我的建图思路是,n个点能转移的都连起来,然后再设n+1为原点,连向每一个点,费用为直接和这个点交易的价格.当然这道题还有一个限制,就是一条路上交易的人的等级不能超过M,那我们可以枚…
昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 45892   Accepted: 13614 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求.酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币.如果你能够弄来他的水晶球,那么只要5000…
//转移为最短路问题,枚举必经每一个不小于酋长等级的人的最短路 //Time:16Ms Memory:208K #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define INF 0x3f3f3f3f #define MAX 105 int lim, n; int p[M…
题意:就是一个点能够被另一个点取代,通过花费一定的金币,注意就是你和某个人交易了,如果这个人的等级和酋长的等级差的绝对值超过m,酋长就不会和你交易了: 思路:这里要注意到,我们最终的目的是找到一条最短路能够到达酋长,刚开始以为是从酋长开始,想了很久,就是建图的时候假设0点是我们初始点,找一条路,能够有0点到1点最短距离, 然后就是超过m限制的点,我们标记下,不用这个点就可以了: 代码: #include<iostream>#include<algorithm>#include<…
这里有个非常坑的地方,还有比酋长地位还更高的人,我也是看了论坛才知道... 在这里我把编号1看成终点,优惠价格看成相应的替代品编号到可替代品编号的权值,比如说有了2再加8000就到了1,那么2到1的弧长权值就是8000,dis[i]表示到编号i花费的最小金币数,初始的dis[i]都是物品本身价格,这里还有一个等级限制,我也看了下论坛,主要是枚举长度为m的所有区间,在每一个区间里都求一次最短路,求最小的值作为答案. 以下是我的代码,偷了懒,时间复杂度比较高: #include<iostream>…
题目链接:https://cn.vjudge.net/problem/POJ-1062 题意 虽然是中文题,还是简单复述一下吧 我们想要酋长的女儿作为老婆.作为交换,酋长想要点钱. 酋长提出可以用其他人的东西来降低价格,然而其他人也想通过别人的东西来降低他们的价格. 由于每个人等级不一样,所以在每一条"交易链"中,不能出现地位差值大于M的情况. 求老婆的最小价值 思路 直接转化为最短路问题,难点在于如何处理地位差和物品价格(老婆价值=边权和+物品价格)的问题 受到Dijkstra的启发…
题目链接:http://poj.org/problem?id=1062 Description 年轻的探险家来到了一个印 第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求 酋长降低要求.酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币.如果你能够弄来他的水晶球,那么只要5000金币就行了."探险 家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来…