1264 芳香数

题目描述 Description

This question involves calculating the value of aromatic numbers which are a combination of Arabic digits and Roman numerals.

本题是关于计算芳香数数值的问题,芳香数是阿拉伯数字和罗马数字的组合。

An aromatic number is of the form ARARAR...AR, where each A is an Arabic digit, and each R is a Roman numeral. Each pair AR contributes a value described below, and by adding or subtracting these values together we get the value of the entire aromatic number.

芳香数的格式是ARARAR..ARA,其中A代表阿拉伯数字,R代表罗马数字。每一对AR按照下面的计算方式计算一个值,通过把这些数值加减起来,就得到了整个芳香数的数值。

An Arabic digit A can be 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9. A Roman numeral R is one of the seven letters I, V, X, L, C, D, or M. Each Roman numeral has a base value:

阿拉伯数字是0,1,2..9,罗马数字是I,V,X,L,C,D,M。

Symbol I V X L C D M Base value 1 5 10 50 100 500 1000

符号I V X L C D M的值是1 5 10 50 100 500 1000。

The value of a pair AR is A times the base value of R. Normally, you add up the values of the pairs to get the overall value. However, wherever there are consecutive symbols ARA0R0 with R0 having a strictly bigger base value than R, the value of pair AR must be subtracted from the total, instead of being added.

一对AR的值计算为A乘以R。一般的,我们把所有的AR的值加起来就得到了芳香数的值。但是如果存在连续的两个数对ARA0R0,其中R0严格大于R的话,则需要减去AR的值,而不是加上。

For example, the number 3M1D2C has the value 3∗1000+1∗500+2∗100 = 3700 and 3X2I4X has the value 3 ∗ 10 − 2 ∗ 1 + 4 ∗ 10 = 68.

举个例子,3M1D2C 的值为3*1000+1*500+2*100=3700,而3X2I4X的值为3*10-2*1+4*10=68

Write a program that computes the values of aromatic numbers.

你的任务是写一个程序来计算一个给定的芳香数的值。

输入描述 Input Description

The input is a valid aromatic number consisting of between 2 and 20 symbols.

输入是一个合法的芳香数,包含了2-20个字符。

输出描述 Output Description

The output is the decimal value of the given aromatic number.

输出是一个十进制的整数代表这个芳香数的值。

样例输入 Sample Input

样例输入 1: 3M1D2C

样例输入 2: 2I3I2X9V1X

样例输出 Sample Output

样例输出 1: 3700

样例输出 2: -16

题目挺吓人,但其实就那么回事,耐心读就好了

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int tot,x,flag,y;
int a[];
int b[];
string n;
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=;i<n.size();i+=)
{
a[x]=n[i]-;
switch(n[i+])
{
case 'I':
b[x++]=;
break;
case 'V':
b[x++]=;
break;
case 'X':
b[x++]=;
break;
case 'L':
b[x++]=;
break;
case 'C':
b[x++]=;
break;
case 'D':
b[x++]=;
break;
case 'M':
b[x++]=;
}
}
for(int i=;i<x;i++)
{
if(b[i+]>b[i])
tot-=a[i]*b[i];
else
tot+=a[i]*b[i];
}
cout<<tot;
return ;
}

codecs 1264 芳香数的更多相关文章

  1. bzoj 1264: [AHOI2006]基因匹配Match

    1264: [AHOI2006]基因匹配Match Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球 ...

  2. python模块之codecs: 自然语言编码转换

    python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理.    有一点需要清楚的是,当python要做编码转换的时候,会借助于内部 ...

  3. bzoj [Sdoi2014]数数 AC自动机上dp

    [Sdoi2014]数数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1264  Solved: 636[Submit][Status][Discu ...

  4. python json及mysql——读取json文件存sql、数据库日期类型转换、终端操纵mysql及python codecs读取大文件问题

    preface: 近期帮师兄处理json文件,须要读到数据库里面,以备其兴许从数据库读取数据.数据是关于yelp站点里面的: https://github.com/Yelp/dataset-examp ...

  5. codecs模块, decode、encode

    使用codecs模块,在Python中完成字符编码   字符的编码是按照某种规则在单字节字符和多字节字符之间进行转换的某种方法.从单字节到多字节叫做decoding,从多字节到单字节叫做encodin ...

  6. BSOJ 1562 【堆练习】丑数3576

    Description 丑数是指素因子都在集合{2,3,5,7}内的整数,第一个丑数是1. 现在输入n(n<=4000),输出第n个丑数. Input 输入文件仅一行为一个整数n. Output ...

  7. Linux上如何查看物理CPU个数,核数,线程数

    首先,看看什么是超线程概念 超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的 ...

  8. 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)

    转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...

  9. 数塔问题(DP算法)自底向上计算最大值

    Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数 ...

随机推荐

  1. nginx 简单介绍

    Nginx同Apache一样都是一种WEB服务器.基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resou ...

  2. robotFramework_Jquery语法

    向您的页面添加 jQuery 库 jQuery 库位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数.那么我们怎么判断页面中是否使用了Jquery库呢? 如下图,当页面中引入 ...

  3. Java操作Hadoop集群

    mavenhdfsMapReduce 1. 配置maven环境 2. 创建maven项目 2.1 pom.xml 依赖 2.2 单元测试 3. hdfs文件操作 3.1 文件上传和下载 3.2 RPC ...

  4. Java调用WebService方法总结(1)--准备工作

    WebService是一种跨编程语言.跨操作系统平台的远程调用技术,已存在很多年了,很多接口也都是通过WebService方式来发布的:本系列文章主要介绍Java调用WebService的各种方法,使 ...

  5. 【洛谷 P4302】 [SCOI2003]字符串折叠(DP)

    题目链接 简单区间dp 令\(f[i][j]\)表示\([i,j]\)的最短长度 先枚举区间,然后在区间中枚举长度\(k\),看这个区间能不能折叠成几个长度为\(k\)的,如果能就更新答案. #inc ...

  6. 大数据相关技术原理资料整理(hdfs, spark, hbase, kafka, zookeeper, redis, hive, flink, k8s, OpenTSDB, InfluxDB, yarn)

    hdfs: hdfs官方文档 深入理解HDFS的架构和原理 https://blog.csdn.net/kezhong_wxl/article/details/76573901 HDFS原理解析(总体 ...

  7. CSS ID选择器&通配选择器

    ID选择器 ID(IDentity)是编号的意思,一般指定标签在HTML文档中的唯一编号.ID选择器和标签选择器.类选择器的作用范围不同. ID选择器仅仅定义一个对下对象的样式,而标签选择器和类选择器 ...

  8. Tomcat - 启动闪退

    版本:Tomcat 9 问题:启动闪退.在控制台中输入"java -version"可以正常输出java的版本信息,但是使用start.bat启动时候闪退. 解决方法:配置系统环境 ...

  9. Python——元组

    是为了满足,某些值当被定义以后就不可修改或删除而出现的元组形式. 特点: 元组中的元素不可被修改或删除 没有独立的功能 可以进行嵌套,当嵌套方可以修改删除时,可以对嵌套方进行. 元组可以进行公共功能中 ...

  10. c# ArrayList 类