P1465 序言页码 Preface Numbering (手推)
題目描述
一類書的序言是以羅馬數字標頁碼的。傳統羅馬數字用單個字母表示特定的數值,以下是標準數字表:
I 1 V 5 X 10 L 50 C 100 D 500 M 1000
最多3個同樣的可以表示為10n的數字(I,X,C,M)可以連續放在一起,表示它們的和:
III=3 CCC=300
可表示為5x10n的字符(V,L,D)從不連續出現。
除了下一個規則,一般來說,字符以遞減的順序接連出現:
CCLXVIII = 100+100+50+10+5+1+1+1 = 268
有時,一個可表示為10n的數出現在一個比它大1級或2級的數前(I在V或X前面,X在L或C前面,等等)。在這種情況下,數值等于后面的那個數減去前面的那個數:
IV = 4 IX = 9 XL = 40
一個數 用羅馬數字來表示 有且僅有一種 而且不能復合嵌套使用(比如I是1 X是10 有人可能要說 IXL就能表示50-10-1 但是IXL絕對不能用來表達39 ) (那么39用什么來表示呢 XXXIX是唯一 而且正確的選擇- -)
像XD, IC, 和XM這樣的表達是非法的,因為前面的數比后面的數小太多。對于XD(490的錯誤表達),可以寫成 CDXC; 對于IC(99的錯誤表達),可以寫成XCIX; 對于XM(990的錯誤表達),可以寫成CMXC。 90 寫成 XC 而不是 LXL, 因為 L 后面的 X 意味著后繼標記是 X 或者更小 (不管怎樣,可能吧)(等同于阿拉伯數字 每位 數字分別表示)。
給定N(1 <= N < 3,500), 序言的頁碼數,請統計在第1頁到第N頁中,有幾個I出現,幾個V出現,等等 (從小到大的順序)。不要輸出沒有出現過的字符。
比如N = 5, 那么頁碼數為: I, II, III, IV, V. 總共有7個I出現,2個V出現。
輸入輸出格式
輸入格式:
一個整數N。
輸出格式:
每行一個字符和一個數字k,表示這個字符出現了k次。字符必須按數字表中的遞增順序輸出。
輸入輸出樣例
輸入樣例#1:
5
輸出樣例#1:
I 7
V 2
說明
翻譯來自NOCOW
USACO 2.2
這個題他們使用DP做的,我看了看一開始也想DP后來發現,他們有規律,就手推前一部分,然后就比較好理解了,不推薦我的做法,這是一道DP題,這是投機取巧的做法。
總結
以上是生活随笔為你收集整理的P1465 序言页码 Preface Numbering (手推)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P1459 三值的排序 Sorting
- 下一篇: 非人学院远程射手精卫出装有哪些攻略