日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

usaco Preface Numbering 序言页码

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 usaco Preface Numbering 序言页码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Preface Numbering 序言頁碼
一類書的序言是以羅馬數字標頁碼的.傳統羅馬數字用單個字母表示特定的數值,一下是標準數字
表:
I 1 L 50 M 1000
V 5 C 100
X 10 D 500
最多 3 個可以表示為 10n 的數字(I,X,C,M)可以連續放在一起,表示它們的和:
III=3
CCC=300
可表示為 5x10n 的字符(V,L,D)從不連續出現.
除了下一個規則,一般來說,字符以遞減的順序接連出現:
CCLXVIII = 100+100+50+10+5+1+1+1 = 268
有時,一個可表示為 10^n 的數出現在一個比它大的數前(I 在 V 或 X 前面,X 在 L 或 C 前面,等等).
在這種情況下,數值等于后面的那個數減去前面的那個數:
IV = 4
IX = 9
XL = 40
像XD, IC, 和XM這樣的表達是非法的,因為前面的數比后面的數小太多.對于XD(490的錯誤表達),
可以寫成 CDXC; 對于 IC(99 的錯誤表達),可以寫成 XCIX; 對于 XM(990 的錯誤表達),可以寫成
CMXC.
給定 N(1 <= N < 3,500), 序言的頁碼數,請統計在第 1 頁到第 N 也中,有幾個 I 出現,幾個 V 出現,
等等 (從小到大的順序).不要輸出并沒有出現過的字符.
比如 N = 5, 那么頁碼數為: I, II, III, IV, V. 總共有 7 個 I 出現,2 個 V 出現.
PROGRAM NAME: preface
INPUT FORMAT
一個整數 N.
SAMPLE INPUT (preface.in)
5
OUTPUT FORMAT
每行一個字符和一個數字 k,表示這個字符出現了 k 次.字符必須按數字表中的遞增順序輸出.
SAMPLE OUTPUT (preface.out)
I 7

V 2


看到題依舊懵逼不知如何下手,無奈之下只好使用我最擅長的百度了。(其實也是自己難不愿多想,看到題就想百度)。

原來是有規律的。個位,十位,百位上都是出現連續的三個而且次數相同比如0,1,2,3,1,0,1,2,3,1,........代碼中注釋。

然后每找到一位上的數字把他上面的三個字母統計下來就行了,佩服寫出這個代碼的人規律用的很嫻熟。

/*
ID:jinbo wu
LANG:C++
TASK:preface
*/
#include<bits/stdc++.h>
using namespace std;
char s[8]={' ','I','V','X','L','C','D','M'};
int a[4][10]={0,0,0,0,0,0,0,0,0,0,0,1,2,3,1,0,1,2,3,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1};
int ans[11];/*('','I','II','III','IV','V','VI','VII','VIII','IX'),//個位,0,1,2,...,9('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC'),//十('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM'),//百('','M','MM','MMM','','','','','',''));//千
*/
int main()
{int n;freopen("preface.in","r",stdin);freopen("preface.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++){int t=i;for(int j=0;j<=3;j++){for(int k=1;k<=3;k++)ans[j*2+k]+=a[k][t%10];t/=10;if(t==0)break;}	}for(int i=1;i<=7;i++){if(ans[i]) printf("%c %d\n",s[i],ans[i]);}
}


總結

以上是生活随笔為你收集整理的usaco Preface Numbering 序言页码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。