/*題意 最多有100個房間,每個房間裡有正能量和負能量,然後你的初始能量為100從1開始走,走到n能不能能量為正,走到每乙個房間的能量必須大於
0,輸入輸出的意思是;
乙個有n個房間,後面的n行表示
第乙個表示 房間的權,第二個 k 表示他可以連到幾個房間,後面的 k個數表示第i個房間與他相連,權為p
當乙個節點進入佇列的次數》=n次 就表示此節點在乙個負環上,然後這裡我們是要求的最大路徑,就是要求正環,當乙個節點在乙個正環上他可以一直繞,
所以當他在正環上 他的體力就是無限的。此時只需要這個圖與n聯通即可。
*/#include#include#include#include#includeusing namespace std;
#define inf 999999999
struct edge
;vectoredges;
vectorg[101];
void addedge(int x,int y,int w)//把邊儲存起來的函式
; edges.push_back(a);
g[x].push_back(edges.size()-1);
}int n;
int dis[101];
int vis[101];
int bfs()
queueq;
q.push(1);
dis[1]=100;
int b;
while(!q.empty())}}
return 0;
}int main()
}if(bfs()) printf("winnable\n");
else printf("hopeless\n");
}}
hdu4889 spfa(造資料卡spfa
題目是給了你乙個spfa slf優化的程式,然後,讓你造個資料卡掉他,其實那個slf優化根本不算是優化,只是在某些圖上可能會更好,但是可以通過直接構造圖將其由原本spfa最壞nm的複雜度卡成2 n複雜度 至於具體的,這題是曹聖 給我講的,他那裡寫的很詳細,我就直接copy了 在這個圖中,我們設計算從...
HDU1317 最長路 判斷正環
題意 有n個房間 n 100 每個房間有乙個點權 第1號房間和第n號房間權值均為0 到達該房間時會自動獲得該點權 權值可能為負,範圍是 100 100 給出一些有向邊。有乙個人,初始能量值為100,初始位置是第一號房間,要走到第n號房間,且路途中不得使身上能量值小於或等於0 必須大於0 能到達第n個...
HDU 3790 最短路徑 spfa
給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。input 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數 s,...