http://acm.hdu.edu.cn/showproblem.php?pid=1317

最短路变型

注意环的问题 出现正环可以无限积累能量

用SPEA求最长路 可以找出正环

没有环的话就正常求最长路 有正环的话 就要模拟绕环积累能量 这样就可以跳过环

#include "stdio.h"
#include "string.h"
#include "vector"
#include "queue"
using namespace std;
const int maxn = 105;
const int inf = 1<<30;
int n;
int w[maxn],dis[maxn];
bool vis[maxn];
vector<int>map[maxn];
bool SPEA( int s )
{
queue<int>que;
int outque[maxn];
for( int i = 1; i <= n; i ++ )
dis[i] = -inf;
memset( vis,0,sizeof(vis) );
memset( outque,0,sizeof(outque) );
que.push(s);
vis[s] = true;
dis[s] = 100;//初始能量
while( !que.empty() )
{
int u = que.front(); que.pop();
vis[u] = false;
outque[u] ++;
if( outque[u] > n + 1 )//在等于n+1时已经模拟绕环无数次 之后跳过这个环
{
continue;
}
if( outque[u] == n + 1 ) //找到一个环 把dis[u]赋值为inf
dis[u] = inf;
for( int i = 0; i < map[u].size(); i ++ )
{
int v = map[u][i];
if( dis[v] < dis[u] + w[v] && dis[u] + w[v] > 0 )//能量不能小于等于0
{
dis[v] = dis[u] + w[v];
if( v == n )
return true;
if( !vis[v] )
{
vis[v] = true;
que.push( v );
}
}
}
}
return false;
}
int main()
{
//freopen( "data.txt","r",stdin );
int m,temp;
while( scanf("%d",&n) != EOF , n != -1 )
{
for( int i = 1; i <= n; i ++ )
{
map[i].clear();
scanf("%d%d",&w[i],&m);
for( int j = 1; j <= m; j ++)
{
scanf("%d",&temp);
map[i].push_back(temp);
}
}
if( SPEA(1) )
puts("winnable");
else
puts("hopeless");
}
return 0;
}

HDU-1317 XYZZY SPEA相关推荐

  1. hdu 1317 XYZZY【Bellheman_ford 判断正环小应用】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1317 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  2. HDU 1317 XYZZY(floyd+bellman_ford判环)

    http://acm.hdu.edu.cn/showproblem.php?pid=1317 题意: 给出一个有向图,每到达一个点,都会加上或减去一些能量,我们要做的就是判断从1出发是否能到达n.初始 ...

  3. hdu 1317——XYZZY

    http://blog.csdn.net/dongshimou/article/details/35984917

  4. HDU 1317 XYZZY

    大意:起始点100HP,给定n个房间,进入房间内加上或者减去 wHP,同一房间可以进入多次,问能否到达终点(HP大于0).起点0,终点n-1. 思路: 假设图中没有环,如果要到达终点,则需让剩下的HP ...

  5. 【图论】C008_HDU 1317 XYZZY(spfa / floyd+ spfa / 一遍 spfa)

    一.题目描述 最近发现了如何在Y-Crate游戏设备上运行开源软件.许多有进取心的设计师已经开发出部署在Y-Crate上的Advent风格的游戏.您的工作是测试许多这样的设计,看看哪些是可以取胜的. ...

  6. 8-12-COMPETITION

    链接:最短路 A.HDU 2544    最短路 算是最基础的题目了吧.............我采用的是Dijkstra算法....... 代码: 1 #include <iostream&g ...

  7. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

  8. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  9. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  10. 一系列图论问题[转]

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

最新文章

  1. MySQL DDL--MySQL 5.7版本Online DDL操作
  2. 作业收缴系统使用手册(自写开源小系统)
  3. Sharepoin学习笔记—架构系列--05 Sharepoint的四种执行模型 2
  4. Apollo自动驾驶入门课程第⑥讲 — 预测
  5. 网络IO演变发展过程和模型介绍
  6. mfc大观之二(类识别)
  7. 模糊查询是如何进行实现的_模糊查找,不是近似查找!在Excel中应该如何进行模糊匹配...
  8. .Net下采用Base64编码的一个封装好的类库
  9. C#中类的默认构造函数对类中属性值的初始化情况
  10. Microsoft Operations Framework 4.0
  11. 10.数据结构 --- 内部排序
  12. javascript 正则
  13. 浅谈HTTP接口性能测试脚本的编写
  14. 呆萝卜 竞品分析报告
  15. linux 4k 桌面壁纸,10个值得珍藏的4K高清壁纸网站推荐
  16. QQ 正在尝试读取你的浏览记录?这是“火绒拦截腾讯产品,腾讯道歉”的历史重现吗?
  17. python中fontsize_更改MatPlotLib中顶部xaxis的fontsize
  18. CAD2016 画直线时第二点为相对坐标(相对第一个点的坐标),非绝对坐标
  19. 深度学习之 imgaug (图像增强)学习笔记
  20. php支付宝接口 新版,新版支付宝即时交易接口(帝国CMS7.2UTF-8)

热门文章

  1. Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx)
  2. 我的RHCE认证考试经历
  3. 虚拟机内存管理之内存分配器
  4. 机器学习——算法介绍-4
  5. Linux中RAID5搭建
  6. struct usb_driver
  7. vue-cli-service build 如何环境设置,打出不同环境的包
  8. 深度优先搜索与广度优先搜索
  9. 【路径规划】遗传算法求解考虑分配次序的多无人机协同目标分配问题
  10. fifa一直连接服务器,FIFA足球世界服务器连接掉线原因及解决方法