preface numbering
1262. 【USACO题库】2.2.1 Preface Numbering序言页码 (Standard IO)
题目描述
一类书的序言是以罗马数字标页码的。传统罗马数字用单个字母表示特定的数值,一下是标准数字表:
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相关推荐
- usaco Preface Numbering 序言页码
Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,一下是标准数字 表: I 1 L 50 M 1000 V 5 C 100 X 10 ...
- USACO:2.2.1 Preface Numbering 序言页码
USACO:2.2.1 Preface Numbering 序言页码 一.题目描述 ★Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数 ...
- [USACO 2.2.1] Preface Numbering
[题目描述] Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,一下是标准数字表: I 1 L 50 M 1000 V 5 C 10 ...
- USACO-Section2.2 Preface Numbering
2017-8-30 题目描述 序言的页码数,请统计在第1页到第N页中,有几个I出现,几个V出现... 解答 将已知存起来,不再重复计算,没有求的用已经求好的加起来 代码 /* ID: 18795871 ...
- USACO Section2.2 Preface Numbering 解题报告 【icedream61】
preface解题报告 ---------------------------------------------------------------------------------------- ...
- Preface Numbering序言页码
题面 (preface.pas/c/cpp) 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,以下是标准数字表: I 1 V 5 X 10 L 50 C 100 D 500 M ...
- P1465 序言页码 Preface Numbering (手推)
题目描述 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,以下是标准数字表: I 1 V 5 X 10 L 50 C 100 D 500 M 1000 最多3个同样的可以表示为 ...
- 洛谷P1465 [USACO2.2]序言页码 Preface Numbering
题目描述 给定 nn,求 1 \sim n1∼n 的 罗马数字 表示中,各个字符出现了多少次. 比如 n = 5n=5,表示为 I, II, III, IV, V.总共有 77 个 I 出现,22 个 ...
- USACO 2.3.3 罗马数字
题目描述: Preface Numbering A certain book's prefaces are numbered in upper case Roman numerals. Traditi ...
最新文章
- OpenCL框架与示例
- html百度地图app,uniapp H5 百度地图(示例代码)
- aspose授权亲测可用配套代码
- JavaEE配置工具
- c语言编写单词位置反转,C语言笔试题答案.docx
- mysql 存byte数组中_新人求大神教教:如何把一个一维数组存入mysql 表格中
- 正则表达式验证密码强度
- Python中两个浮点数的简单运算
- IEDevToolBar - 一个分析网页的有用的工具
- 块格式化上下文(Block Formatting Context,BFC)
- python删除行_python 删除文件中指定行
- 缓冲文件系统和非缓冲文件系统
- 力扣-1557. 可以到达所有点的最少点数目
- R语言:关于我国各地区消费水平的聚类分析
- abaqus算出来的转角单位是什么_ABAQUS中的单位制是如何规定的;
- 二分类模型AUC评价法
- Wireshark抓不到vlan tag问题解决
- 2021年国内PT站点汇总(中英文名称对照表)很全呦!
- java中线程池的实现原理:七参、四策
- 大道至简:透过现象看本质
热门文章
- Minitab 19.1.0.1 x64 中文免费版
- Google C++编程风格整理(二)
- mysql数据库64免安装_【文】MySQL-8.0.18-winx64免安装配置
- 高德地图 下拉搜索五省 根据电价区分区域颜色
- linux系统或者虚拟机下无法挂载64GU盘的解决办法
- Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
- 斜杆/ 和 反斜杠\ 的区别
- 获取已经登录的docker镜像仓库地址、用户名、密码
- 信息网络传播视听节目许可证
- 利用Python打造一个语音合成系统