1262. 【USACO题库】2.2.1 Preface Numbering序言页码 (Standard IO)

时间限制:  1000 ms  空间限制:  262144 KB  具体限制  

题目描述

一类书的序言是以罗马数字标页码的。传统罗马数字用单个字母表示特定的数值,一下是标准数字表:

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

输入

输出

样例输入

样例输出

数据范围限制

vara,b,c,i,j:longint;s:ansistring;v:array['A'..'Z'] of longint;i1:char;
const s1:array[1..4,1..9] of string=(('I','II','III','IV','V','VI','VII','VIII','IX'),('X','XX','XXX','XL','L','LX','LXX','LXXX','XC'),('C','CC','CCC','CD','D','DC','DCC','DCCC','CM'),('M','MM','MMM','','','','','',''));s2:array[1..4,1..9] of integer=((1,2,3,4,5,6,7,8,9),(10,20,30,40,50,60,70,80,90),(100,200,300,400,500,600,700,800,900),(1000,2000,3000,4000,4000,4000,4000,4000,4000));
procedure shengcheng;
beginfor i:=4 downto 1 dofor j:=9 downto 1 dobeginif c>=s2[i,j] thenbegindec(c,s2[i,j]);s:=s+s1[i,j];end;end;
end;
beginreadln(a);for b:=1 to a dobeginc:=b;s:='';shengcheng;for i:=1 to length(s) dobeginv[s[i]]:=v[s[i]]+1;end;end;if v['I']<>0 then writeln('I',' ',v['I']);if v['V']<>0 then writeln('V',' ',v['V']);if v['X']<>0 then writeln('X',' ',v['X']);if v['L']<>0 then writeln('L',' ',v['L']);if v['C']<>0 then writeln('C',' ',v['C']);if v['D']<>0 then writeln('D',' ',v['D']);if v['M']<>0 then writeln('M',' ',v['M']);
end.

preface numbering相关推荐

  1. usaco Preface Numbering 序言页码

    Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,一下是标准数字 表: I 1 L 50 M 1000 V 5 C 100 X 10 ...

  2. USACO:2.2.1 Preface Numbering 序言页码

    USACO:2.2.1 Preface Numbering 序言页码 一.题目描述 ★Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数 ...

  3. [USACO 2.2.1] Preface Numbering

    [题目描述] Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,一下是标准数字表: I 1 L 50 M 1000 V 5 C 10 ...

  4. USACO-Section2.2 Preface Numbering

    2017-8-30 题目描述 序言的页码数,请统计在第1页到第N页中,有几个I出现,几个V出现... 解答 将已知存起来,不再重复计算,没有求的用已经求好的加起来 代码 /* ID: 18795871 ...

  5. USACO Section2.2 Preface Numbering 解题报告 【icedream61】

    preface解题报告 ---------------------------------------------------------------------------------------- ...

  6. Preface Numbering序言页码

    题面 (preface.pas/c/cpp) 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,以下是标准数字表: I 1 V 5 X 10 L 50 C 100 D 500 M ...

  7. P1465 序言页码 Preface Numbering (手推)

    题目描述 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,以下是标准数字表: I 1 V 5 X 10 L 50 C 100 D 500 M 1000 最多3个同样的可以表示为 ...

  8. 洛谷P1465 [USACO2.2]序言页码 Preface Numbering

    题目描述 给定 nn,求 1 \sim n1∼n 的 罗马数字 表示中,各个字符出现了多少次. 比如 n = 5n=5,表示为 I, II, III, IV, V.总共有 77 个 I 出现,22 个 ...

  9. USACO 2.3.3 罗马数字

    题目描述: Preface Numbering A certain book's prefaces are numbered in upper case Roman numerals. Traditi ...

最新文章

  1. OpenCL框架与示例
  2. html百度地图app,uniapp H5 百度地图(示例代码)
  3. aspose授权亲测可用配套代码
  4. JavaEE配置工具
  5. c语言编写单词位置反转,C语言笔试题答案.docx
  6. mysql 存byte数组中_新人求大神教教:如何把一个一维数组存入mysql 表格中
  7. 正则表达式验证密码强度
  8. Python中两个浮点数的简单运算
  9. IEDevToolBar - 一个分析网页的有用的工具
  10. 块格式化上下文(Block Formatting Context,BFC)
  11. python删除行_python 删除文件中指定行
  12. 缓冲文件系统和非缓冲文件系统
  13. 力扣-1557. 可以到达所有点的最少点数目
  14. R语言:关于我国各地区消费水平的聚类分析
  15. abaqus算出来的转角单位是什么_ABAQUS中的单位制是如何规定的;
  16. 二分类模型AUC评价法
  17. Wireshark抓不到vlan tag问题解决
  18. 2021年国内PT站点汇总(中英文名称对照表)很全呦!
  19. java中线程池的实现原理:七参、四策
  20. 大道至简:透过现象看本质

热门文章

  1. Minitab 19.1.0.1 x64 中文免费版
  2. Google C++编程风格整理(二)
  3. mysql数据库64免安装_【文】MySQL-8.0.18-winx64免安装配置
  4. 高德地图 下拉搜索五省 根据电价区分区域颜色
  5. linux系统或者虚拟机下无法挂载64GU盘的解决办法
  6. Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
  7. 斜杆/ 和 反斜杠\ 的区别
  8. 获取已经登录的docker镜像仓库地址、用户名、密码
  9. 信息网络传播视听节目许可证
  10. 利用Python打造一个语音合成系统