标签:des style blog http color os io java ar
4 2 1 2 gt 0 2 2 lt 2 1 2 1 0 gt 0 1 0 lt 0 0
lamentable kingdom successful conspiracy
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <climits> 7 #include <vector> 8 #include <queue> 9 #include <cstdlib> 10 #include <string> 11 #include <set> 12 #include <stack> 13 #define LL long long 14 #define pii pair<int,int> 15 #define INF 0x3f3f3f3f 16 using namespace std; 17 struct arc{ 18 int to,w; 19 arc(int x = 0,int y = 0){ 20 to = x; 21 w = y; 22 } 23 }; 24 vector<arc>g[510]; 25 int n,m,d[510],cnt[500]; 26 bool in[510]; 27 queue<int>q; 28 bool spfa(){ 29 for(int i = 0; i <= n; i++){ 30 d[i] = INF; 31 cnt[i] = 0; 32 in[i] = false; 33 g[n+1].push_back(arc(i,0)); 34 } 35 while(!q.empty()) q.pop(); 36 d[n+1] = 0; 37 cnt[n+1] = 1; 38 q.push(n+1); 39 in[n+1] = true; 40 while(!q.empty()){ 41 int u = q.front(); 42 q.pop(); 43 in[u] = false; 44 for(int i = 0; i < g[u].size(); i++){ 45 if(d[g[u][i].to] > d[u]+g[u][i].w){ 46 d[g[u][i].to] = d[u]+g[u][i].w; 47 if(!in[g[u][i].to]){ 48 in[g[u][i].to] = true; 49 if(++cnt[g[u][i].to] > n) return false; 50 q.push(g[u][i].to); 51 } 52 } 53 } 54 } 55 return true; 56 } 57 int main() { 58 int i,u,v,w; 59 char str[5]; 60 while(scanf("%d",&n),n){ 61 scanf("%d",&m); 62 for(i = 0; i < 500; i++) g[i].clear(); 63 for(i = 0; i < m; i++){ 64 scanf("%d %d %s %d",&u,&v,str,&w); 65 if(str[0] == ‘g‘) 66 g[u+v].push_back(arc(u-1,-w-1)); 67 else g[u-1].push_back(arc(u+v,w-1)); 68 } 69 spfa()?puts("lamentable kingdom"):puts("successful conspiracy"); 70 } 71 return 0; 72 }
标签:des style blog http color os io java ar
原文地址:http://www.cnblogs.com/crackpotisback/p/3959208.html