开始用dijkstra直接求,发现不行,算法问题(1-2,(30),2-4(20),1--3(10),3--4(100)最后一个点无法更新,导致错误),后用取负,加大数法也没过。

现在(寒假了):求负权的(无负环),或者最长路(一样,取负求最短),不可以dijkstra,用 spfa可以

#include<iostream>  //spfa
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int a[200][200];int point[200];int pre[200];int mark[200];int d[200];
const int inf=0x3f3f3f3f;
int main()
{
int t;
cin>>t;
int i;
for(int ii=1;ii<=t;ii++)
{
int n,m;
memset(a,0x3f,sizeof(a));
memset(d,0x3f,sizeof(d));
memset(point,0,sizeof(point));
memset(pre,0,sizeof(pre));
memset(mark,0,sizeof(mark));
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%d",&point[i]);
}
point[n+1]=0;
cin>>m;
int s,l;
for(i=1;i<=m;i++)
{
scanf("%d%d",&s,&l);
a[s][l]=-point[l];
}
bool flag=1;
d[1]=0;
int cur=1;
mark[cur]=1;
queue<int>q;
q.push(1);
while(!q.empty())
{
int cur=q.front();
q.pop();
for(i=1;i<=n+1;i++)
{
if(mark[i]==0&&d[cur]+a[cur][i]<d[i]) //可以松弛的要入队
{
q.push(i);
pre[i]=cur;
}
if(d[cur]+a[cur][i]<d[i]) //对所有的能松弛的松弛
d[i]=d[cur]+a[cur][i];
} }
if(d[n+1]==inf) //防止出现无法到达
{
printf("CASE %d#\npoints : %d\n",ii,d[n+1]);
printf("circuit : 1->1");
if(ii==t)cout<<endl;
else cout<<endl<<endl;
continue;
} int bb[205];int kk=n+1;int yy=1;
while(pre[kk]!=1)
{
bb[yy++]=pre[kk];
kk=pre[kk];
}
yy--;
bb[0]=1;
printf("CASE %d#\npoints : %d\n",ii,-d[n+1]);
printf("circuit : 1");
for(i=yy;i>=0;i--)
printf("->%d",bb[i]);
if(ii==t)cout<<endl;
else cout<<endl<<endl;
}
return 0;
}

hdu 1224 最长路的更多相关文章

  1. hdu 1224 Free DIY Tour(最长的公路/dp)

    http://acm.hdu.edu.cn/showproblem.php? pid=1224 基础的求最长路以及记录路径. 感觉dijstra不及spfa好用,wa了两次. #include < ...

  2. HDU 6201 2017沈阳网络赛 树形DP或者SPFA最长路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6201 题意:给出一棵树,每个点有一个权值,代表商品的售价,树上每一条边上也有一个权值,代表从这条边经过 ...

  3. HDU 6201 transaction transaction transaction(拆点最长路)

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  4. hdu 1534(差分约束+spfa求最长路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1534 思路:设s[i]表示工作i的开始时间,v[i]表示需要工作的时间,则完成时间为s[i]+v[i] ...

  5. [HDU 1317]XYZZY[SPFA变形][最长路]

    题意: 一个图, 点权代表走到该点可获得的能量值. 可正可负. 一个人从1 号出发,带有100点能量. 问是否有一种方案可使人在能量值>0的时候走到n. 思路: 这个题首先要注意点权. 其实就是 ...

  6. hdu 4123 树的最长路+RMQ

    Bob’s Race Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. HDU 2196 Computer (树上最长路)【树形DP】

    <题目链接> 题目大意: 输出树上每个点到其它点的最大距离. 解题分析: 下面的做法是将树看成有向图的做法,计算最长路需要考虑几种情况. dp[i][0] : 表示以i为根的子树中的结点与 ...

  8. HDU.1529.Cashier Employment(差分约束 最长路SPFA)

    题目链接 \(Description\) 给定一天24h 每小时需要的员工数量Ri,有n个员工,已知每个员工开始工作的时间ti(ti∈[0,23]),每个员工会连续工作8h. 问能否满足一天的需求.若 ...

  9. HDU - 6201:transaction transaction transaction(最长路)

    Kelukin is a businessman. Every day, he travels around cities to do some business. On August 17th, i ...

随机推荐

  1. readystatechange

    // alternative to DOMContentLoaded document.onreadystatechange = function () { if (document.readySta ...

  2. shell脚本,一个字符一个字符输出。

    [root@localhost wyb]# cat file abc def abc 789de f567 [root@localhost wyb]# cat fffile.sh #!/bin/bas ...

  3. Clover KextsToPatch 使用方法 2015.10.21

    Clover KextsToPatch 使用方法 2015.10.21   前些天,因为 Thinkpad X230 BIOS 白名单限制,给她换了一块 ar9285 无线网卡,只是因为这块网卡正好可 ...

  4. ECMAScript 继承机制实现

    继承机制的实现 要用 ECMAScript 实现继承机制,您可以从要继承的基类入手.所有开发者定义的类都可作为基类.出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码 ...

  5. ClientAbortException:java.io.IOException解决方案

    org.apache.catalina.connector Class ClientAbortException java.lang.Object java.lang.Throwable java.l ...

  6. 纯 CSS 创作一个小球绕着圆环盘旋的动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gKxyWo 可交互视频 ...

  7. 【HIHOCODER 1323】回文字符串(区间DP)

    描述 给定一个字符串 S ,最少需要几次增删改操作可以把 S 变成一个回文字符串? 一次操作可以在任意位置插入一个字符,或者删除任意一个字符,或者把任意一个字符修改成任意其他字符. 输入 字符串 S. ...

  8. yum安装的java配置

    vim /etc/profile JAVA_HOME=/usr/lib/jvm/javaJRE_HOME=$JAVA_HOME/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.ja ...

  9. bluej

    他山之石,可以攻玉!吾辈之道,披荆斩棘! 个人源码地址: https://gitee.com/blue_phantom

  10. Java-字符串大小写转换

    package com.tj; public class MyClass implements Cloneable { public static void main(String[] args) { ...