您的位置:首页 > 其它

BITCS2016程序设计 | 9. 一夜发白 《千字文》

2016-10-11 20:36 274 查看


9. 一夜发白《千字文》

成绩10开启时间2016年09月6日 星期二 11:00
折扣0.8折扣时间2016年09月8日 星期四 23:55
允许迟交关闭时间2016年10月10日 星期一 23:55


背景

在古代中国,《三字经》、《百家姓》、《千字文》被合称为三、百、千,都是非常重要的启蒙教育课本,广为流传。而其中问世最早的《千字文》更凭借其优美的文字、华丽的辞藻成为中华传统文化的一个重要组成部分,得到了人们的普遍重视和喜爱。
《千字文》的作者,是梁武帝时代官拜散骑员外郎的周兴嗣。历来在正史上的记载,就这样一笔带过,但据私家笔记的野史记载,内容不是这样简单了。周兴嗣同梁武帝本来便是文字之交的朋友,在萧齐时代,还在朝廷上有过同僚之谊。到了梁武帝当了皇帝,那就变成君臣的关系。由朋友变君臣,说是关系不错,其实,伴君如伴虎,反是最糟糕的事,周兴嗣有一次不小心得罪了梁武帝,梁武帝一怒之下,想杀他或很严厉地处分他,到底还是于心不忍,只好下令把先关起来再说。但梁武帝又说了一句话,你不是文才很好吗?你能在一夜之间,把一千个不同的字,写一篇好文章,就赦你无罪。因此,周兴嗣就在一夜之间,挖空心思,写了这篇《千字文》。文章写好了,可是在一夜之间,头发、眉毛、胡子也都白了!大家要注意,用一千个不同的中文字,一夜之间,写出有关宇宙、物理、人情、世故的文间,等于写了一篇非常精简的“中国文化纲领要点”,虽然,只写到南北时期的梁朝为止,实在也太难了。梁武帝本人,才华文学都自命不凡,看了周兴嗣一夜之间之间所写的《千字文》,也不能不佩服。周兴嗣因此得到宽恕,而且还特加赏赐。

——摘自南怀瑾《原本大学微言》
现代人,一生中有机会通读千字文的机会是非常少的,很多理工科的大学生,完全没有听说过这篇神奇的文章,自然也会抱着“怀疑一切”的态度问,真的有这么神吗,真的一个重复的字都没有吗?耳听为虚,眼见为实,我们就来检验一下千字文中是不是真的没有重复的字。
不过在动手之前,先让我们花上几分钟的时间,读读《千字文》吧:简体中文版正体中文版


任务

请编写一个程序,从输入中读取一篇中文文章,并统计出该文章中 ASCII 字符以外的重复出现的每一个字重复出现的次数。
文章使用 UTF-8 编码,可能会出现任何可以用 UTF-8 编码表示的字符(不限于中文)。
文章中所有的字符在 UCS-2 能够表示的范围内,即字符的 Unicode 值用两个字节就可以表示。


输入

一篇文章,总字数不限、每行字符数不限。每个字重复出现的次数不超过 60000 次。


输出

按照 Unicode 编码从小到大的顺序,输出文章中 ASCII (0~127) 字符以外的每一个重复出现过的字重复出现的次数。每行包含三项内容,首先是重复的字符(以 UTF-8 编码输出),然后是该字符的 Unicode 编码值(十六进制输出,字母均使用小写,长度不足4位数的用0补齐),最后输出该字符的重复次数。
如果文章中没有出现重复的字,则输出“No repeat!”。

 测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例 1以文本方式显示

Qianzi wen in Simplified Chinese↵

天地玄黄 宇宙洪荒 日月盈昃 辰宿列张 寒来暑往 秋收冬藏 闰馀成岁 律吕调阳↵

云腾致雨 露结为霜 金生丽水 玉出昆冈 剑号巨阙 珠称夜光 果珍李柰 菜重芥姜↵

海咸河淡 鳞潜羽翔 龙师火帝 鸟官人皇 始制文字 乃服衣裳 推位让国 有虞陶唐↵

吊民伐罪 周发殷汤 坐朝问道 垂拱平章 爱育黎首 臣伏戎羌 遐迩一体 率宾归王↵

鸣凤在竹 白驹食场 化被草木 赖及万方 盖此身发 四大五常 恭惟鞠养 岂敢毁伤↵

女慕贞洁 男效才良 知过必改 得能莫忘 罔谈彼短 靡恃己长 信使可复 器欲难量↵

墨悲丝染 诗赞羔羊 景行维贤 克念作圣 德建名立 形端表正 空谷传声 虚堂习听↵

祸因恶积 福缘善庆 尺璧非宝 寸阴是竞 资父事君 曰严与敬 孝当竭力 忠则尽命↵

临深履薄 夙兴温凊 似兰斯馨 如松之盛 川流不息 渊澄取映 容止若思 言辞安定↵

笃初诚美 慎终宜令 荣业所基 籍甚无竟 学↵

以文本方式显示

云 0x4e91 2↵

发 0x53d1 2↵

巨 0x5de8 2↵

戚 0x621a 2↵

昆 0x6606 2↵

资 0x8d44 2↵

1秒1024KB0
测试用例 2以文本方式显示

Qianzi wen in Traditional Chinese↵

天地玄黃 宇宙洪荒 日月盈昃 辰宿列張 寒來暑往 秋收冬藏 閏馀成歲 律呂調陽↵

雲騰致雨 露結爲霜 金生麗水 玉齣崑岡 劍號巨阙 珠稱夜光 果珍李柰 菜重芥姜↵

海鹹河淡 鱗潛羽翔 龍師火帝 鳥官人皇 始制文字 乃服衣裳 推位讓國 有虞陶唐↵

吊民伐罪 周發殷湯 坐朝問道 垂拱平章 愛育黎首 臣伏戎羌 遐迩一體 率賓歸王↵

鳴鳳在竹 白駒食場 化被草木 賴及萬方 蓋此身髮 四大五常 恭惟鞠養 豈敢毀傷↵

女慕貞絜 男效才良 知過必改 得能莫忘 罔談彼短 靡恃己長 信使可複 器欲難量↵

墨悲絲染 詩贊羔羊 景行維賢 克念作聖 德建名立 形端表正 空谷傳聲 虛堂習聽↵

禍因惡積 福緣善慶 尺璧非寶 寸陰是競 資父事君 曰嚴與敬 孝當竭力 忠則盡命↵

臨深履薄 夙興溫凊 似蘭斯馨 如松之盛 川流不息 淵澄取映 容止若思 言辭安定↵

笃初誠美 慎終宜令 榮業所基 籍甚無竟 ↵

以文本方式显示

No repeat!↵

1秒1024KB0
解题思路:
说实话,当年我看到这道题目的时候,内心是相当相当崩溃的。对了,那时候我们还有题目的测试用例需要通过文件读取,完全没有接触过文件操作的时候,内心真的相当崩溃啊!(哈哈哈这两句话吐槽的居然差不多一模一样)
其实,好好理解题意之后,就可以发现这只是一个很简单的结合位运算操作的统计题。首先,大家要去弄明白unicode-8的编码方式,这个我看百度百科上面解释的就很好,当然online上面也会有相关辅助文档,同学之间可以多交流。这道题目当年我们和计算器一起都Rejudge了,re的时候重点要考察unicode的占据3byte的理解。

这可是我当年大二时候的代码呀!ps,因为unicode这个数组名wa了无数次。。。大家命名一定要注意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: