游戏得分 建立反图SPFA / bellman

何老板最近在玩一款游戏,游戏虽然简单,他仍旧乐此不疲。
游戏地图由n个关卡构成,关卡编号1到n。起点在1号关卡,终点在n号关卡。
关卡间通过m条有向道路相连,每条道路都有一个分值,表示每经过一次该道路,玩家都将获得对应分值。
何老板想知道,他操控游戏角色从起点走到终点,最多能得多少分?请你帮忙计算!
解:
考试的时候dfs炸了 ...

考虑这个环能否到达终点
等价于 这个终点能否到达这个环
所以想到建立反图

bellman的做法的话 是进行n次松弛后 看n号点是否还能被松弛 是就存在合法的环
code:
被chi了

原文地址:https://www.cnblogs.com/OIEREDSION/p/11565454.html

时间: 2024-11-02 23:42:08

游戏得分 建立反图SPFA / bellman的相关文章

P1073 最优贸易 建立分层图 + spfa

P1073 最优贸易:https://www.luogu.org/problemnew/show/P1073 题意: 有n个城市,每个城市对A商品有不同的定价,问从1号城市走到n号城市可以最多赚多少差价.(旅游为主,赚钱为辅,所以买入和卖出只进行一次. 思路: 建一个有三层的图,三层都是相同的普通的城市路线,第一层向第二层连从第i个城市买入商品的花费,第二层向第三层连从第i个城市卖出商品的所得.从1 向 第一层的终点 ,向第三层的终点跑一遍最大路就行了. #include <algorithm>

POJ 2312Battle City(BFS-priority_queue 或者是建图spfa)

1 /* 2 bfs搜索!要注意的是点与点的权值是不一样的哦! 3 空地到空地的步数是1, 空地到墙的步数是2(轰一炮+移过去) 4 所以用到优先队列进行对当前节点步数的更新! 5 */ 6 #include<iostream> 7 #include<queue> 8 #include<cstring> 9 #include<algorithm> 10 #include<cstdio> 11 using namespace std; 12 13

[游戏模版13] 透明贴图 主角移动

>_<:just add previous two ways to achieve this new result 1 // stdafx.h : include file for standard system include files, 2 // or project specific include files that are used frequently, but 3 // are changed infrequently 4 // 5 6 #if !defined(AFX_ST

在Visual Studio和MyEclipse中建立UML图

最近在看<Head First设计模式>,在前面的博客中我也提到了这本书,这是一本非常经典,非常通俗易懂的书,写得很好.因为这本书是使用java描述的,所以我就使用了MyEclipse写了点代码,之前一直使用VS,VS中建立UML图的功能还是非常强大的,现在发现MyEclipse中也可以建立UML图,而且功能也很强大,学习设计模式的时候,结合类图学习,会事半功倍的.下面就来说说在Visual Studio和MyEclipse中建立UML图的过程,这里以类图为例,其他图的建立过程与类图差不多.博

bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级【分层图+spfa】

至死不用dijskstra系列2333,洛谷上T了一个点,开了O2才过 基本想法是建立分层图,就是建k+1层原图,然后相邻两层之间把原图的边在上一层的起点与下一层的终点连起来,边权为0,表示免了这条边的边权,然后答案就是第0层的s到k层的t的最短路,因为0权边总是从上一层连到下一层,所以到达k层就表示走了k条0权边 这样的点数是nk的,不管是dijskstra还是spfa都跑不过 然后仔细观察这张图的特性,发现不同层之间的更新只有上一层通过0权边更新下一层,所以考虑单层更新,每一层都做一次spf

hdu2377Bus Pass(较为复杂的建图+spfa)

题目链接: 啊哈哈,点我点我 思路: 题目是给了很多个车站,然后要你找到一个社区距离这些车站的最大值最小..所以对每个车站做一次spfa,那么就得到了到每个社区的最大值,最后对每个社区扫描一次,得到那个最大最小值..还有题目要求是要最小的id,所以排一次序. 题目: Bus Pass Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6

Visio2010建立ER图并直接导出为SQL语句

Visio2010建立ER图并直接导出为SQL语句 2013年08月20日 ⁄ 综合 ⁄ 共 2581字 ⁄ 字号 小 中 大 ⁄ 评论关闭 建立数据库时我们需要考虑数据之间的关系,为了理清数据之间的关系我们需要对数据进行统一的整理.对于较复杂的数据库我们需要建立数据库模型,具体可分为两步:首先对数据库进行结构分析并使用树.表等描述数据,然后分析数据库的操作方法,规定数据库的增删改查操作,这两个步骤就构成了我们通常所说的数据库模型. 数据库模型有多重分类,通常所说的ER图是图模型,除此之外还有层

windows程序设计——飞机大战笔记(数据库记录游戏得分)

//////////////////2015/07/23//////////////// //////////////////by xbw////////////////////// /////////////////环境 VS2013//////////// 这个飞机大战呢,做了也有好几天了,我一半以上时间在鼓捣这个数据库,第一次弄,也学到了不少东西,在此记录一下,也分享一下经验:: 接着上次说吧,昨天呢,实现了多组数据的存储与调用,欣喜若狂,昨天就已经试验了这个对用户积分的储存,但是昨天不只

MindManager2018建立洋葱图的方法教程

1.首先,打开MindManager 2018,文件->新建->新洋葱图即可.创建界面如下图所示. MindManager2018建立洋葱图的方法教程2.点击创建,进入洋葱图界面.上方是标题,右方是图例. MindManager2018建立洋葱图的方法教程3.双击左键创建主题,上下左右键即可移动主题,修改位置,标题可使用Enter键进行思维导图创建. MindManager2018建立洋葱图的方法教程如想修改此模板的设计,需右键单击图的背景->选择背景->解锁所有背景对象->