posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          PKU 1002 487-3279

          Posted on 2007-06-03 21:54 ZelluX 閱讀(1248) 評論(3)  編輯  收藏 所屬分類: Algorithm
          用了STL::map,很容易過了,前面用Java和樸素的C++都超時了
          不過開始提交的時候題目沒看清,沒有重復的號碼應該輸出No duplicates.的
          #include <iostream>
          #include 
          <string>
          #include 
          <map>

          using namespace std;

          string decode(const string& origin);

          long main() {
              
          long n;
              cin 
          >> n;
              map
          <stringlong> phones;
              
          string origin;
              map
          <stringlong>::iterator iter;
              
          for (long i=0; i<n; i++{
                  cin 
          >> origin;
                  
          string decoded = decode(origin);
                  iter 
          = phones.find(decoded);
                  
          if (iter == phones.end()) {
                      phones.insert(pair
          <stringlong>(decoded, 1));
                  }
           else {
                      iter
          ->second++;
                  }

              }


              
          bool flag = true;
              
          for (iter = phones.begin(); iter != phones.end(); iter++{
                  
          if (iter->second <= 1)
                      
          continue;
                  cout 
          << iter->first.substr(03<< '-' << iter->first.substr(38)
                       
          << ' ' << iter->second << endl;
                  flag 
          = false;
              }

              
          if (flag)
                  cout 
          << "No duplicates." << endl;
              
          return 0;
          }


          string decode(const string& origin) {
              
          string decoded;
              
          for (long i = 0; i < origin.length(); i++{
                  
          switch (origin[i]) {
                      
          case 'A'case 'B'case 'C'case '2':
                          decoded 
          += '2';
                          
          break;
                      
          case 'D'case 'E'case 'F'case '3':
                          decoded 
          += '3';
                          
          break;
                      
          case 'G'case 'H'case 'I'case '4':
                          decoded 
          += '4';
                          
          break;
                      
          case 'J'case 'K'case 'L'case '5':
                          decoded 
          += '5';
                          
          break;
                      
          case 'M'case 'N'case 'O'case '6':
                          decoded 
          += '6';
                          
          break;
                      
          case 'P'case 'R'case 'S'case '7':
                          decoded 
          += '7';
                          
          break;
                      
          case 'T'case 'U'case 'V'case '8':
                          decoded 
          += '8';
                          
          break;
                      
          case 'W'case 'X'case 'Y'case '9':
                          decoded 
          += '9';
                          
          break;
                      
          case '1'case '0':
                          decoded 
          += origin[i];
                          
          break;
                  }

              }

              
          return decoded;
          }

          評論

          # re: PKU 1002 487-3279  回復  更多評論   

          2007-09-16 15:00 by linux
          haoxiang ye chaoshi le!

          # re: PKU 1002 487-3279  回復  更多評論   

          2007-09-16 19:17 by ZelluX
          @linux
          剛看了下以前的記錄,發現是1795ms內過的,差點就tle了,好險@@

          # re: PKU 1002 487-3279  回復  更多評論   

          2008-02-21 00:45 by ecl1pse
          我這個題也是1343MS過的 危險的很
          主站蜘蛛池模板: 黑水县| 江油市| 龙泉市| 团风县| 长海县| 蚌埠市| 蓬溪县| 三门峡市| 龙陵县| 绥棱县| 交口县| 奇台县| 安多县| 阳谷县| 建德市| 健康| 武汉市| 达拉特旗| 新巴尔虎左旗| 泰来县| 汉阴县| 宁海县| 柞水县| 达拉特旗| 孟州市| 海淀区| 四会市| 嘉义县| 金山区| 玉山县| 增城市| 华池县| 秦安县| 长海县| 民县| 巨鹿县| 大同市| 无极县| 宾川县| 汝城县| 鹤山市|