HDU 1317 && POJ 1932 &&ZJU1935 SPFA
来源:互联网 发布:打印机安装软件 编辑:程序博客网 时间:2024/05/16 06:20
题意:给你可以走的有向边和点的权值,问能否从1走到n且途中的权值和不能<=0;
#include<cstdio>#include<stdlib.h>#include<string.h>#include<string>//#include<map>#include<cmath>#include<iostream>#include <queue>#include <stack>#include<algorithm>#include<set>using namespace std;#define INF 1e8#define inf -0x3f3f3f3f#define eps 1e-8#define LL long long#define maxn 150#define mol 1000000007int n,dis[maxn],map[maxn][maxn],reach[maxn][maxn],e[maxn],vis[maxn];void foyld(){ int i,j,k;for(k=1;k<=n;k++){ for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { reach[i][j]=reach[i][j]||(reach[i][k]&&reach[k][j]); } }}}int SPFA(int s){ queue<int>Q;Q.push(s);dis[s]=100;while(!Q.empty()){ int u=Q.front(); Q.pop(); vis[u]++; if(vis[u]>=n) return reach[u][n];// 亮点 for(int i=1;i<=n;i++) { if(map[u][i]&&dis[u]+e[i]>dis[i]&&dis[u]+e[i]>0) { dis[i]=dis[u]+e[i]; Q.push(i); } }}if(dis[n]>0) return 1;elsereturn 0;}int main(){while(scanf("%d",&n)&&n!=-1){ int i,j,num,v; memset(reach,0,sizeof(reach)); memset(map,0,sizeof(map)); memset(vis,0,sizeof(vis)); for(i=0;i<=n+1;i++) dis[i]=inf; for(i=1;i<=n;i++) { scanf("%d%d",&e[i],&num);while(num--){ scanf("%d",&v); map[i][v]=1; reach[i][v]=1;} } foyld(); if(!reach[1][n]) printf("hopeless\n"); else { if(SPFA(1)) printf("winnable\n"); else printf("hopeless\n"); }}return 0; }/*50 1 2-50 1 3-40 2 2 420 1 50 0*/
0 0
- HDU 1317 && POJ 1932 &&ZJU1935 SPFA
- HDU 1317/POJ 1932 Floyd + Spfa 最长路
- hdu 1317+hdu 1535(SPFA)
- poj 1932(spfa判断环)
- poj 1932 XYZZY(SPFA)
- hdu 1535 || poj 1511 Invitation Cards(heap + dijstra || spfa)
- poj 2204 hdu 1217 Arbitrage spfa判环 解题报告
- POJ 1201/hdu 1384 Intervals【差分约束+SPFA】
- POJ 1932 XYZZY (ZOJ 1935)SPFA+floyd
- POJ--3259--spfa spfa写法
- [HDU 1317]XYZZY[SPFA变形][最长路]
- hdu 1317 XYZZY(spfa判环)
- hdu 1317 XYZZY spfa判断负环
- hdu 1317 spfa判环求最长路
- hdu 1317 spfa 算法 判断正环
- HDU 1317(spfa找环)
- hdu 1317 XYZZY(floyd+SPFA)
- HDU 1317 POJ 1932 XYZZY
- OCP-1Z0-053-200题-200题-61
- 元宵了,我只想给我儿子洗个澡
- 使用CocoaPods(二)删除已经配置的类库和移除CocoaPods
- AP Ezreal-不屈的呐喊-Candy攻略
- 自己实现vector,对于自定义类型可用,可以实现vector的嵌套。功能上目前只实现了插入和删除。
- HDU 1317 && POJ 1932 &&ZJU1935 SPFA
- Python调用小黄鸡接口程序
- 《30天自制操作系统》学习笔记——第五天
- 背井离乡,为何仍要打拼北上广?---转自百度云
- sql server 2008链接服务器的访问接口缺少 "Microsoft.Ace.OleDb.12.0" 接口 怎么办?
- Unity3D UniLua调用C#
- 前WE辅助IF的最强最完善辅助全心得
- 微信公众帐号开发教程第1篇-引言
- 微信公众帐号开发教程第2篇-微信公众帐号的类型(普通和会议)