<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      書山有徑勤為路>>>>>>>>

      <<<<<<<<學海無涯苦作舟!

      Floyd算法解決POJ 1603

       

      Description

      Risk is a board game in which several opposing players attempt to conquer the world. The gameboard consists of a world map broken up into hypothetical countries. During a player's turn, armies stationed in one country are only allowed to attack only countries with which they share a common border. Upon conquest of that country, the armies may move into the newly conquered country. 

      During the course of play, a player often engages in a sequence of conquests with the goal of transferring a large mass of armies from some starting country to a destination country. Typically, one chooses the intervening countries so as to minimize the total number of countries that need to be conquered. Given a description of the gameboard with 20 countries each with between 1 and 19 connections to other countries, your task is to write a function that takes a starting country and a destination country and computes the minimum number of countries that must be conquered to reach the destination. You do not need to output the sequence of countries, just the number of countries to be conquered including the destination. For example, if starting and destination countries are neighbors, then your program should return one. 

      The following connection diagram illustrates the first sample input. 

      Input

      Input to your program will consist of a series of country configuration test sets. Each test set will consist of a board description on lines 1 through 19. The representation avoids listing every national boundary twice by only listing the fact that country I borders country J when I < J. Thus, the Ith line, where I is less than 20, contains an integer X indicating how many "higher-numbered" countries share borders with country I, then X distinct integers J greater than I and not exceeding 20, each describing a boundary between countries I and J. Line 20 of the test set contains a single integer (1 <= N <= 100) indicating the number of country pairs that follow. The next N lines each contain exactly two integers (1 <= A,B <= 20; A!=B) indicating the starting and ending countries for a possible conquest. 

      There can be multiple test sets in the input file; your program should continue reading and processing until reaching the end of file. There will be at least one path between any two given countries in every country configuration. 

      Output

      For each input set, your program should print the following message "Test Set #T" where T is the number of the test set starting with 1. The next NT lines each will contain the result for the corresponding test in the test set - that is, the minimum number of countries to conquer. The test result line should contain the start country code A the string " to " the destination country code B ; the string ": " and a single integer indicating the minimum number of moves required to traverse from country A to country B in the test set. Following all result lines of each input set, your program should print a single blank line.

      Sample Input

      1 3
      2 3 4
      3 4 5 6
      1 6
      1 7
      2 12 13
      1 8
      2 9 10
      1 11
      1 11
      2 12 17
      1 14
      2 14 15
      2 15 16
      1 16
      1 19
      2 18 19
      1 20
      1 20
      5
      1 20
      2 9
      19 5
      18 19
      16 20

      Sample Output

      Test Set #1
      1 to 20: 7
      2 to 9: 5
      19 to 5: 6
      18 to 19: 2
      16 to 20: 2
       
      說句實話,這個輸入真的有點蛋庝呀!
      還好題目十分的簡單。
      你要想學好floyd,不妨先去看看松馳操作。
      懂了松馳操作,floyd不在話下。而且松馳
      操作在其它的算法中也是十分的常用。所以
      弄懂這個十分有必要。
       
      
      
      View Code
      #include "iostream"
      using namespace std;
      #define Max 21
      int map[Max][Max];
      void floyd()
      {
          for(int m=1; m<=20; m++)//m代表mid,即中間的點
              for(int b=1; b<=20; b++)//b代表begin,即開始的點
                  for(int e=1; e<=20; e++)//e代表end,即結束的點
                      if(map[b][e]>map[b][m]+map[m][e])
                          map[b][e] = map[b][m]+map[m][e];
      }
      int main()
      {
          int n, num, end, i, j, start, count=1;
          while(cin>>num)
          {
              memset(map, 21, sizeof(map));//這個松馳操作關鍵的第一步,也是關鍵的一步
              while(num--)
              {
                  cin>>end;
                  map[1][end]=map[end][1]=1;//初始化map,注意初始時的雙向性
              }
              for(i=2; i<=19; i++)
              {
                  cin>>num;
                  while(num--)
                  {
                      cin>>end;
                      map[i][end]=map[end][i]=1;//初始化map,注意初始時的雙向性
                  }
              }
              floyd();
              cin>>n;
              cout<<"Test Set #"<<count++<<endl;
              while(n--)
              {
                  cin>>start>>end;
                  cout<<start<<" to "<<end<<": "<<map[start][end]<<endl; 
              }
              cout<<endl;
          }
          return 0;
      }
      
      

       

       

      posted on 2011-10-03 19:42  More study needed.  閱讀(550)  評論(0)    收藏  舉報

      導航

      書山有徑勤為路>>>>>>>>

      <<<<<<<<學海無涯苦作舟!

      主站蜘蛛池模板: 中文字幕国产日韩精品| 亚洲国产精品无码久久电影| 精品视频不卡免费观看| 欧美成人午夜在线观看视频| 久久综合九色综合97欧美| 亚洲av色一区二区三区| 欧美激情综合色综合啪啪五月| 国产精品毛片av999999| 国精品无码一区二区三区左线| 韩国精品福利视频一区二区| 免费无码AV一区二区波多野结衣| 日韩高清砖码一二区在线| 国产高潮又爽又刺激的视频| 国产一级二级三级毛片| 亚洲一区中文字幕第十页| 又粗又大又硬又长又爽| 国产超碰人人做人人爰| 草草浮力影院| 成年入口无限观看免费完整大片| 精品人妻午夜一区二区三区四区| 免费无码一区无码东京热| 亚洲国产av无码综合原创国产| 人妻少妇偷人精品视频| 最新国产AV最新国产在钱| 三门峡市| 亚洲Av综合日韩精品久久久| 综合激情网一区二区三区| 国产成AV人片久青草影院| 国产精品美女一区二三区| 国产免费一区二区不卡| 人妻少妇偷人一区二区| 国产精品视频免费一区二区| 成年女人喷潮免费视频| 久久人与动人物a级毛片| 免费特黄夫妻生活片| 亚洲 卡通 欧美 制服 中文| 麻豆精品一区二区综合av| 漂亮的人妻不敢呻吟被中出| 2018av天堂在线视频精品观看| 久久精品夜色国产亚洲av| 东京热人妻丝袜无码AV一二三区观|