zoukankan      html  css  js  c++  java
  • POJ 2240

      1 #include<iostream>
      2 #include<stdio.h>
      3 #include<string>
      4 #include<algorithm>
      5 #include<map>
      6 #define MAXN 35
      7 using namespace std;
      8 
      9 map<string,int> coll;
     10 map<string,int>::iterator pos1,pos2;
     11 double _m[MAXN][MAXN];
     12 bool _wall[MAXN][MAXN];
     13 bool give_num(int n);
     14 int main()
     15 {
     16     //freopen("acm.acm","r",stdin);
     17     int n;
     18     int edge;
     19     int i;
     20     int j;
     21     int k;
     22     double value;
     23     string s;
     24     string u;
     25     string v;
     26     int time = 0;
     27     while(1)
     28     {
     29         //memset(_m,-1.0,sizeof(_m));
     30         cin>>n;
     31         //getchar();
     32         if(!n)
     33             break;
     34         for(i = 0; i < n; ++i)
     35         {
     36             for(j = 0; j < n; ++ j)
     37             {
     38                 _m[i][j] = -1.0;
     39             }
     40         }
     41 
     42         cout<<"Case "<<++ time<<": ";
     43         for(i = 0; i < n; ++ i)
     44         {
     45             cin>>s;
     46             coll.insert(pair<string,int>(s,i));
     47         }
     48         cin>>edge;
     49         for(i = 0; i < edge; ++ i)
     50         {
     51             cin>>u>>value>>v;
     52             pos1 = coll.find(u);
     53             pos2 = coll.find(v);
     54     //        cout<<pos1->second<<"---------------"<<pos2->second<<endl;
     55             _m[pos1->second][pos2->second] = value;
     56         //    _m[pos2->second][pos1->second] = value;
     57         }
     58     //    for(i = 0; i < n; ++ i)
     59     //    {
     60     //        for(j = 0; j < n; ++ j)
     61     //        {
     62     //            cout<<_m[i][j]<<" ";
     63     //        }
     64     //        cout<<endl;
     65     //    }
     66         if(give_num(n))
     67             cout<<"Yes"<<endl;
     68         else
     69             cout<<"No"<<endl;
     70         coll.clear();
     71     }
     72 }
     73 
     74 bool give_num(int n)
     75 {
     76     int k;
     77     int i;
     78     int j;
     79     double tem;
     80     for(k = 0; k < n; ++ k)
     81     {
     82         for(i = 0; i < n; ++ i)
     83         {
     84             for(j = 0; j < n; ++ j)
     85             {
     86             //    cout<<"00000000000000 "<<1.0/(_m[i][k] * _m[k][j])<<"--------"<<_m[j][i]<<endl;
     87                 if(_m[i][k] != -1.0 && _m[k][j] != -1.0 )
     88                 {
     89                     if(_m[j][i] != -1.0)
     90                     {
     91                         if(( _m[i][k] * _m[k][j]) * _m[j][i] > 1.0)
     92                         {
     93             //                cout<<"00000000000000 "<<1.0/(_m[i][k] * _m[k][j])<<endl;
     94                             return true;
     95                         }
     96                     }
     97                 //    else
     98                 //    {
     99                         
    100                     //}
    101                     if(_m[i][k] * _m[k][j] > _m[i][j])
    102                     {
    103                            _m[i][j] = ( _m[i][k] * _m[k][j]);
    104                     }
    105                 }
    106             }
    107         }
    108     }
    109     return false;
    110 }
  • 相关阅读:
    在Linux下安装和使用MySQL
    vc动态装载动态库
    stl学习(转帖2)
    makefile
    详细的MySQL C API
    Excel INTO SQLSERVER
    Outlook2010中预览Word,Excel附件问题
    11gRAC ASM管理的数据文件丢失恢复
    ASM上控制文件损坏时的恢复
    使用NET USER增加一个超级管理 & 激活Windows 7 administrator
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4566725.html
Copyright © 2011-2022 走看看