MemoryGarden's Blog

努力 -----------大能猫

C++博客 首页 新随笔 联系 聚合 管理
  118 Posts :: 11 Stories :: 20 Comments :: 0 Trackbacks

过的诡异。。。。。

貌似听aowarmen 讲是要判断正环,但是。。。我加了一个点,用最长路做的。。。汗。。。。

而且重边判断的不行, re 了n次。。。。。

水过。。。。。

http://acm.pku.edu.cn/JudgeOnline/problem?id=2240



后来改的,仍然判不了重边。。。


 1
 #include <stdio.h>
 2 #include <string.h>
 3 #include <string>
 4 #include <map>
 5 #define eps 1e-30
 6 #define max 1000
 7 using namespace std;
 8 map<stringint> mp;
 9 map<stringint> :: iterator it;
10 int m, n, el;
11 double mm[max][max];
12 struct E{
13     int u, v;
14 };
15 E e[1000000];
16 double bellman(){
17     int i, j, f;
18     double d[max];
19     for(i = 0; i < max; i++)d[i] = -1;
20     d[0= 1;
21     for(i = 0; i < m; i++){
22         f = 0;
23         for(j = 0; j < el; j++){
24             if(d[e[j].v] < d[e[j].u] * mm[e[j].u][e[j].v] + eps){
25                 d[e[j].v] = d[e[j].u] * mm[e[j].u][e[j].v];
26                 f = 1;
27             }
28         }
29         if(!f)return d[n] > 1.0 + eps;
30     }
31     return d[n] > 1.0 + eps;
32 }
33 
34 int main()
35 {
36     char input[1000], u[1000], v[1000];
37     int i, j, l, a, b, c = 1;
38     double w;
39     while(scanf("%d"&m), m){
40         l = el = 0;
41         printf("Case %d: ", c++);
42         memset(mm, 0sizeof(mm));
43         for(i = 0; i < m; i++){
44             scanf("%s", input);
45             mp.insert(make_pair(input, l++));
46         }
47         scanf("%d"&n);
48         for(i = 0; i < n; i++){
49             scanf("%s%lf%s", u, &w, v);
50             a = mp.find(u)->second;
51             b = mp.find(v)->second;
52             e[el].u = a;
53             if(b == 0)b = n;
54             if(!mm[a][b] || mm[a][b] < w + eps){
55                 mm[a][b] = w;
56                 e[el++].v = b;
57             }
58         }
59         if(bellman())
60             printf("Yes\n");
61         else printf("No\n");
62         mp.clear();
63     }
64     return 0;
65 }

posted on 2008-09-04 00:22 memorygarden 阅读(491) 评论(0)  编辑 收藏 引用 所属分类: 报告

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理