[USACO] [列挙]はじめ番号

質問の意味:

数N、出力[1、N]各文字のデジタル変換はローマ数字で表示された後数であるに入ります。

アイデア:

暴力は...手紙を見つけるためにデジタル文字列を列挙し、その後、アラビア数字、ローマ数字に変換するプログラムを書いていました。

遭遇したいかなる簡単なピットは、ローマ数字表現450ではありません!

ローマ数字とアラビア数字各見込み変化上記被写体leetcodeは、このことによって影響を受けることができる......

これらの場所から学ぶことがある問題を解決するための分析:
* strcatの2つのchar []接続

残りの問題は> <理解するための詳細な解決策ではありません

1  / * 
2  ID:ggy_7781
 3  TASK:接頭
 4  LANG:C ++ 11
 5  * / 
6  
7の#include <ビット/ STDC ++ H>
 8  使って 名前空間STDを、
9  
10  チャー A [ 200003 ]。
11  チャー STRS [ 203 ] [ 13 ]。
12  チャー TMP [ 79 ]。
13  ブール CMP(対< 整数整数 > L、対< INTINT > R)
 14  {
15      もし(l.first =!r.first)
 16          リターン l.first < r.first。
17      リターン l.second < r.second。
18  }
 19  INT メイン(){
 20      freopenは(" prefix.in "" R " 、STDIN)。
21      freopenは(" prefix.out "" W " 、STDOUT)。
22      INT TOT = 0 23      一方(CIN >> STRS [TOT])
 24      {
25          であれば(STRS [TOT] [ 0 ] == ' ' 26 ブレーク27          TOT ++ ;
28     }
 29 ながら(CIN >> TMP)
 30         STRCAT(TMP)。
31 INT LEN = STRLEN()。
32      ベクター<ペア< 整数整数 >> ANS。
33 のためにINT iが= 0 ; I <TOT; I ++ 34     {
 35 INTレニ= STRLEN(STRS [I])。
                                        36          のためにINT J = 0 ; J <LEN; J ++ 37          {
 38              であれば([J] == STRS [I] [ 0 ])
 39              {
 40                  のint OP = J。
41                  ブール OK = ;
42                  INT K。
43                  のための(K = 0 ; K <レニ&& J <LEN; K ++、J ++ 44                  {
 45                      であれば(STRS [I] [K] =![J])
 46                      {
 47                          OK =;
48                          ブレーク;
49                      }
 50                  }
 51                  であれば(OK && K == レニ)
 52                  {
 53                      ans.push_back(対< 整数整数 > (OP、J))。
54                  }
 55                  J = OP。
56              }
 57          }
 58      }
 59      ソート(ans.begin()、ans.end()、CMP)。
60      もし(ANS [ 0 ] 1次回!= 0 61      {
 62          COUT << 0 << ENDL。
63          リターン 0 ;
64      }
 65      INT nowpos = ANS [ 0 ] .second。
66      int型 J = 0 ;
67      一方(J <ans.size()&& ANS [j]が1次回<= nowpos && nowpos <= ANS [J] .second)
 68      {
 69          nowpos = ANS [J] .second。
70          J ++ ;
71      }
 72      COUT << nowpos << ENDL。
73      リターン 0 74 }

おすすめ

転載: www.cnblogs.com/ggy778/p/12231448.html