英文原题 中文题译
大致题意:统计在古罗马计数法下从1-N出现的字母的个数。
罗马数字表示法至今沿用于表示目录,不过其用于表示大数不大方便。该表示由7个字母构成,分别是:I=1, V=5, X=10, L=50, C=100, D=500, M=1000。由I,II,III,IV,V,VI,VII,VIII,IX表示1-9,由X,XX,XXX,XL,L,LX,LXX,LXXX,XC表示10,20,...90,由C,CC,CCC,CD,D,DC,DCC,DCCC,CM表示100,200,...900,由M,MM,MMM表示1000,2000,3000。
计数有两种主要方式,一种是逐个生成字串统计,一个是利用数据规律直接计算。前者思路简单,程序较长,后者程序简洁,但需要仔细事先计算。
主体思路:注意到个位、10位、百位的表示,实际上是三个字母一组,IVX,XLC,CDM...由此可以一次性事先统计出在该位上字母出现的个数。计数时只需考虑每个位数字出现的次数即可。
由此,计数=高位计数+本位计数+余数。举例说明:2974中的十位(XLC组合),该组合完整的出现2900次,10-60各出现10次,7出现5次,这就是程序中加法三部分的由来。
看了USACO Training上的标程,似乎都比我的程序复杂,我想我的程序至今应该是最简单的了,呵呵。有点疑惑的是,为什么这个题放在这一节(数据结构与动态规划)。比较牵强的理由,是这其中包含对子结构的判定吧。
大致题意:统计在古罗马计数法下从1-N出现的字母的个数。
罗马数字表示法至今沿用于表示目录,不过其用于表示大数不大方便。该表示由7个字母构成,分别是:I=1, V=5, X=10, L=50, C=100, D=500, M=1000。由I,II,III,IV,V,VI,VII,VIII,IX表示1-9,由X,XX,XXX,XL,L,LX,LXX,LXXX,XC表示10,20,...90,由C,CC,CCC,CD,D,DC,DCC,DCCC,CM表示100,200,...900,由M,MM,MMM表示1000,2000,3000。
计数有两种主要方式,一种是逐个生成字串统计,一个是利用数据规律直接计算。前者思路简单,程序较长,后者程序简洁,但需要仔细事先计算。
主体思路:注意到个位、10位、百位的表示,实际上是三个字母一组,IVX,XLC,CDM...由此可以一次性事先统计出在该位上字母出现的个数。计数时只需考虑每个位数字出现的次数即可。
由此,计数=高位计数+本位计数+余数。举例说明:2974中的十位(XLC组合),该组合完整的出现2900次,10-60各出现10次,7出现5次,这就是程序中加法三部分的由来。
看了USACO Training上的标程,似乎都比我的程序复杂,我想我的程序至今应该是最简单的了,呵呵。有点疑惑的是,为什么这个题放在这一节(数据结构与动态规划)。比较牵强的理由,是这其中包含对子结构的判定吧。
/* ID: blackco3 TASK: preface LANG: C++ */ #include <fstream> #include <iostream> using namespace std ; int appc[3][10]={ /* counter for appearance of symbols */ /* I II III IV V VI VII VIII IX */ {0, 1, 3, 6, 7, 7, 8, 10, 13, 14 }, {0, 0, 0, 0, 1, 2, 3, 4, 5, 5 }, {0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } }; char names[7][2]={"I", "V", "X", "L", "C", "D", "M"}; int n_appear[7]={ 0, 0, 0, 0, 0, 0, 0 }; int main() { ofstream fout ("preface.out"); ifstream fin ("preface.in"); int n ; fin >> n ; for( int rank=0, tmp=n, prod=1; tmp ; rank++, prod*=10 ){ int r=tmp%10; tmp /= 10 ; for( int i=0; i<3; i++ ) n_appear[rank*2+i] += tmp*prod*appc[i][9] + ( r ? appc[i][r-1]*prod + (appc[i][r]-appc[i][r-1])*(n-(tmp*10+r)*prod+1 : 0) ; } for( int i=0; i<7; i++ ){ if( !n_appear[i] ) continue ; fout << names[i] << " " << n_appear[i] << endl ; } return 0; }
发表评论
-
USACO Training Section 4.2 Cowcycles
2010-01-31 21:11 880英文原题 中文题译 ... -
USACO Training Section 4.2 Job Processing
2010-01-30 17:31 1127英文原题 中文题译 大意: 有N个工件,每个工件要经 ... -
USACO Training Section 4.2 Drainage Ditches ISAP非递归和多路增广递归
2010-01-29 19:39 1842郁闷。不小心覆盖了重 ... -
USACO Training Section 4.2 The Perfect Stall 匈牙利算法的递归和非递归实现
2010-01-28 21:21 1639英文原题 中文题译 ... -
USACO Training Section 4.1 Cryptcowgraphy 奶牛密码
2010-01-27 20:58 1190英文原题 中文题译 大意: 奶牛们要从农场逃跑 ... -
USACO Training Section 4.1 Beef McNuggets
2010-01-26 21:37 962英文原题 中文题译 大意: 给定N个正整数, ... -
USACO Training Section 4.1 Fence Loops
2010-01-24 20:14 1059英文原题 大意: 农夫布朗的牧场上的篱笆已经失 ... -
USACO Training Section 3.4 Closed Fences
2010-01-23 17:50 1399英文原题 题意 一个 ... -
USACO Training Section 3.4 American Heritage
2010-01-21 23:19 768英文原题 大意:有一个由最多26个大写字母构成的二叉树 ... -
USACO Training Section 3.4 Raucous Rockers
2010-01-21 23:09 793英文原题 大意:有S首歌,要放到D个CD里。每首歌有一个 ... -
USACO Training Section 3.4 Electric Fence
2010-01-21 12:57 964英文原题 大意:给定一个三角形(0,0),(m,n),( ... -
USACO Training Section 3.3 Riding the Fences
2010-01-20 23:38 1202英文原题 中文题译 经典的求欧拉路径:给定最多两个奇 ... -
USACO Training Section 3.3 Shopping Offers
2010-01-19 22:18 911英文原题 中文题译 这是个与日常生活相关的题。商场促销 ... -
USACO Training Section 3.3 A Game
2010-01-19 20:54 1090英文原题 有如下一个双人游戏:N(2 <= N & ... -
USACO Training Section 3.3 Home on the Range
2010-01-19 19:36 768英文原题 中文题译 大意:给定一个01矩阵,计算其中全为 ... -
USACO Training Section 3.3 Camelot
2010-01-19 03:39 1225英文原题 中文题译 ... -
USACO Training Section 3.2 Sweet Butter
2010-01-19 00:10 1042英文原题 中文题译 大意:农场之间有路构成稀疏无向图,若 ... -
USACO Training Section 3.2 Magic Squares
2010-01-18 23:11 925英文原题 中文题译 大意:有人发明了一种有8个块三种变换 ... -
USACO Training Section 3.2 Feed Ratios
2010-01-18 20:52 1302英文原题 中文题译 大意:给出整数a[i][j]和 ... -
USACO Training Section 3.2 Spinning Wheels
2010-01-18 19:37 862英文原题 中文题译 大意:有五个纺车飞轮,每个都有最多五 ...
相关推荐
ACM----USACO Training(解题博客网),提供了USACO Training解题的代码,可以参考一下
自己写的usaco_training带代码。供参考,有一道题是cheat的。自己看吧。
usaco测试数据+标程 usaco的section1到section5的所有测试数据 以及标准程序
usaco解题报告,就是usaco.training.gateway上面的题目全解
USACO题解+代码+翻译,好东西,超级齐全,对大家帮助不小,特别是现在nocow挂了
usaco section2.3--section5.5源程序。。。。。。。。。。。。。。。。
[USACO 1.1.4]破碎的项链.cpp
2.2 Section 2.2 2.3 Section 2.3 2.4 Section 2.4 3 Chapter3 3.1 Section 3.1 3.2 Section 3.2 3.3 Section 3.3 3.4 Section 3.4 4 Chapter4 4.1 Section 4.1 4.2 Section 4.2 4.3 Section 4.3 4.4 Section 4.4 5 ...
USACO全部译题 USACO Training Program Gateway
USACO_培训USACO_培训Ride.java-> Gift1.java->
USACO training 教程翻译合集(清晰明确)
USACO培训页面美国计算机奥林匹克训练页2015年6月17日开始
One of the answer of the USACO training exercises.
usaco 合集,包括英文原题和中文译题,测试数据以及答案,很全啊!usaco 合集usaco 合集usaco 合集usaco 合集
usaco历年测试数据
usaco 2010-2011 nov news,喜欢usaco的朋友可以看看
USACO题集及答案
某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试
usaco的总结和心得 包括了对题目的分了和总结 以及对题目的解法概括
USACO培训网站 我为章节解决方案。 每个文件的多行USACO标识信息注释 第1章全部的解决方案 第2章全部的解决方案