ZOJ-#3501 Roman Order(字符串模拟)
来源:互联网 发布:mac浏览器开发者模式 编辑:程序博客网 时间:2024/06/01 14:42
题目大意:给出一组数字对应的Roman值,再给出一组数据,将数据按照对应的Roman值的字典序排序输出。
解题思路:先将Roman值对应的值存下来,对输入的数据利用结构体将数值和对应的Roman字符捆绑在一起存储,然后定义cmp按照字典序排序即可。详见code。
题目来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4344
code:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 1e4+10;int t,n;struct node{ int data; string str;}a[MAXN];string base[4][9]={ {"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"}};int cmp(const node a,const node b){ int lena=a.str.length(); int lenb=b.str.length(); for(int i=0;i<min(lena,lenb);i++) if(a.str[i]!=b.str[i]) return a.str[i]<b.str[i]; return lena<lenb;}int main(){ //freopen("input.txt","r",stdin); scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i].data); int k=0,tmp=a[i].data; string arr=""; while(tmp){ if(tmp%10>0) arr=base[k][tmp%10-1]+arr; k++; tmp/=10; } a[i].str=arr; } sort(a,a+n,cmp); for(int i=0;i<n-1;i++) printf("%d ",a[i].data); printf("%d\n",a[n-1].data); } return 0;}
0 0
- ZOJ-#3501 Roman Order(字符串模拟)
- ZOJ 3501 Roman Order
- Roman Order&&字符串处理问题
- ZOJ Monthly, May 2011 - B Roman Order
- zoj-3826(字符串模拟)
- ZOJ 3826 hash+字符串模拟
- UVA3501-Roman Order
- ZOJ-#3465 The Hive(字符串模拟)
- ZOJ 3930 Dice Notation【模拟】【字符串】
- ZOJ 3985 String Of CCPC 字符串,模拟
- ZOJ3501 Roman Order 解题报告
- zoj 2172 Symmetric Order
- zoj 2172 Symmetric Order
- zoj 2172 Symmetric Order
- ZOJ 2172 Symmetric Order
- ZOJ 2172 Symmetric Order
- zoj 2172 Symmetric Order
- ZOJ 2172 Symmetric Order
- HDU-#4464 Browsing History
- ZOJ-#3508 The War(贪心)
- ACE基本的TCP通信(定时发送,实时显示)1.0
- Python读取ini配置文件
- iOS ---UITabBarItem 选中图
- ZOJ-#3501 Roman Order(字符串模拟)
- Linux设备驱动中的阻塞与非阻塞I/O 及 等待队列的使用说明
- 用SeekBar做的Android颜色调色器
- python解析xml文档实例
- ANT使用说明
- hdu 2167 状态压缩dp
- 纯手工整理Redis详细教程,学不会都难!
- CSDN的第一篇博客,有点小激动。呵呵,准备在这里记录自己的JAVA历程。
- APIC Timer