简单字符串。

 #include <cstdio>
#include <cstring> #define MAXN 55
char srca[MAXN], cas[MAXN], sums[MAXN]; inline int getVal(char ch) {
switch (ch) {
case 'I': return ;
case 'V': return ;
case 'X': return ;
case 'L': return ;
case 'C': return ;
case 'D': return ;
case 'M': return ;
default: return ;
}
} int R2I(char str[]) {
int i, len = strlen(str);
int val = ;
for (i=; i<len; ++i) {
if (str[i]=='C' && (str[i+]=='D'||str[i+]=='M'))
val -= ;
else if (str[i]=='X' && (str[i+]=='L'||str[i+]=='C'))
val -= ;
else if (str[i]=='I' && (str[i+]=='X'||str[i+]=='V'))
val -= ;
else
val += getVal(str[i]);
}
return val;
} void f1(int *p, int *q, char str[], int a, int b, char ca, char cb, char cc) {
int x = *p, t=a/;
int i = *q;
if (x >= a) {
x -= a;
str[i++] = ca;
str[i++] = cc;
}
if (x >= b) {
x -= b;
str[i++] = cb;
}
if (x >= (a-b)) {
x -= (a-b);
str[i++] = ca;
str[i++] = cb;
}
while (x >= t) {
str[i++] = ca;
x -= t;
}
*p = x;
*q = i;
} void I2R(int x, char str[]) {
int i = ;
while (x >= ) {
str[i++] = 'M';
x -= ;
}
f1(&x, &i, str, , , 'C', 'D', 'M');
f1(&x, &i, str, , , 'X', 'L', 'C');
f1(&x, &i, str, , , 'I', 'V', 'X');
str[i] = '\0';
} int main() {
int c;
int n, case_n = ; while(scanf("%d", &n)!=EOF && n) {
c = ;
while (n--) {
scanf("%s", srca);
c += R2I(srca);
}
I2R(case_n, cas);
I2R(c, sums);
printf("Case %s: %s\n", cas, sums);
++case_n;
} return ;
}

【HDOJ】1924 CIVIC DILL MIX的更多相关文章

  1. 【HDOJ】4729 An Easy Problem for Elfness

    其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...

  2. 【HDOJ】【3506】Monkey Party

    DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cst ...

  3. 【HDOJ】【3516】Tree Construction

    DP/四边形不等式 这题跟石子合并有点像…… dp[i][j]为将第 i 个点开始的 j 个点合并的最小代价. 易知有 dp[i][j]=min{dp[i][j] , dp[i][k-i+1]+dp[ ...

  4. 【HDOJ】【3480】Division

    DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明 ...

  5. 【HDOJ】【2829】Lawrence

    DP/四边形不等式 做过POJ 1739 邮局那道题后就很容易写出动规方程: dp[i][j]=min{dp[i-1][k]+w[k+1][j]}(表示前 j 个点分成 i 块的最小代价) $w(l, ...

  6. 【HDOJ】【3415】Max Sum of Max-K-sub-sequence

    DP/单调队列优化 呃……环形链求最大k子段和. 首先拆环为链求前缀和…… 然后单调队列吧<_<,裸题没啥好说的…… WA:为毛手写队列就会挂,必须用STL的deque?(写挂自己弱……s ...

  7. 【HDOJ】【3530】Subsequence

    DP/单调队列优化 题解:http://www.cnblogs.com/yymore/archive/2011/06/22/2087553.html 引用: 首先我们要明确几件事情 1.假设我们现在知 ...

  8. 【HDOJ】【3068】最长回文

    Manacher算法 Manacher模板题…… //HDOJ 3068 #include<cstdio> #include<cstring> #include<cstd ...

  9. 【HDOJ】【1512】Monkey King

    数据结构/可并堆 啊……换换脑子就看了看数据结构……看了一下左偏树和斜堆,鉴于左偏树不像斜堆可能退化就写了个左偏树. 左偏树介绍:http://www.cnblogs.com/crazyac/arti ...

随机推荐

  1. 使用passenger在Centos7部署Puma+Nginx+Ruby on Rails

    安装ruby环境 RVM(ruby版本管理工具)安装 gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A170311 ...

  2. struts2 自定义拦截,防止非法操作

    <package name="defaults" extends="struts-default"> <interceptors> &l ...

  3. jquery easyUI 日期格式化,DateBox只显示年

    jquery easyUI 日期格式化,DateBox只显示年 >>>>>>>>>>>>>>>>> ...

  4. Sae配置Java数据库连接

    Sae配置Java数据库连接 Sae在Java中配置mysql数据库 >>>>>>>>>>>>>>>>& ...

  5. xml--小结④DTD的验证问题,不要用IE检验,IE不靠谱

    可以自己写代码 <script type="text/javascript"> var xmldoc = new ActiveXObject("Microso ...

  6. Java-struts2 之中文乱码问题

    中文乱码问题,是个很麻烦的问题,有时候你发现,你表单页面的编码是UTF-8 Stutrst.xml也有这么一句话 <constant name="struts.i18n.encodin ...

  7. centos7 安装php5.6.0 、nginx1.7.4、phpssdbadmin

    1 创建用户.网站目录和下载相关的安装包 groupadd www #添加www组 创建目录/data/www/ chown www:www /data/www/ -R #设置目录所有者 chmod ...

  8. matlab中max的用法

    C = max(A) 返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的每一列作为一个向量,返回一行向量包含了每一列的最大元素. ...

  9. UITabBar的隐藏

    方式一: // 重写导航控制器的push方法 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL) ...

  10. angularjs服务常见用法

    服务可以再应用的整个生命周期内保持数据,不会在切换路由或者重新加载视图时被清楚掉(控制器只有在需要时才被实例化) 服务是一个单例对象,在每个应用中只会被实例化一次 服务在应用的生命周期内保存数据 an ...