- 博客(7)
- 收藏
- 关注
原创 习题3-3 数数字(Digit Counting , ACM/ICPC Danang 2007, UVa1225)
题目描述:把前n(n≤10000)个整数顺次写在一起:123456789101112…数一数0~9各出现多少次(输出10个整数,分别是0,1,…,9出现的次数)。题目分析:判断某个字符是哪个数字最直接的方法就是枚举法(即将每个字符与0~9作对比),即用switch语句逐个判断(注意8='8'-'0'),每出现一次对应计数器加一,然而这样实际上不是最简便的。由于这里只是计算0~9出现的次...
2019-12-07 13:34:38 363
原创 习题3-9 子序列(BUG)(All in All, UVa 10340)
题目描述:输入两个字符串s和t,判断是否可以从t中删除0个或多个字符(其他字符顺序不变),得到字符串s。例如,abcde可以得到bce,但无法得到dc。题目分析:题目只要求判断能否,没有要求删除哪些字符,所以只要判断两个条件:1.t中字符在s是否存在 2.t中字符的顺序是否和s中相应字符一样。但这样问题就来了,如果s中有重复的t中的字符会怎么样?如果重复的字符只在剩余字符的一边,那么可以直接通...
2019-10-26 00:05:06 346
原创 习题3-7 DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)
题目描述:输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量小。两个等长字符串的Hamming距离等于字符不同的位置个数,例如,ACGT和GCGA的Hamming距离为2(左数第1, 4个字符不同)。 输入整数m和n(4≤m≤50, 4≤n≤1000),以及m个长度为n的DNA序列(只包含字母A,C,G,T),输出到m个...
2019-10-24 21:36:28 277
原创 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)
题目描述:输入一个r行c列(1≤r,c≤10)的网格,黑格用“*”表示,每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出了网格边界),则称这个白格是一个起始格。首先把所有起始格按照从上到下、从左到右的顺序编号为1, 2, 3,…,接下来要找出所有横向单词(Across)。这些单词必须从一个起始格开始,向右延伸到一个黑格的左边或者整个网格的最右列。最后...
2019-10-24 17:37:39 324
原创 习题3-1 得分(Score, ACM/ICPC Seoul 2005, UVa1585)
题目描述:给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。题目分析:连续O为1+2+3+……+n,显然为累加,出现X为0,即当判断出X是令n=0重新累加。代码如下://OOXXOXXOOO#include <iostream>#inclu...
2019-10-23 12:42:46 571 1
原创 习题3-4 周期串(Periodic Strings, UVa455)
题目描述:如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的字符串,输出其最小周期。题目分析:最直接最简便的方法无无疑是枚举法,从1开始枚举周期k,当遇到的第一个k满足周期的条件时,当前k就是最小周期,直接结束输出就可以了。注意:判断k是否为周期的方法大致上都相同,如a[...
2019-10-22 22:08:02 320
原创 习题3-5 谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)
题目描述:有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指令执行完毕后的网格。如果有非法指令,应输出“Thispuzzle has no final configuration.”题目分析:1.读取问题:5*5的网格显然用二维数...
2019-10-22 18:38:59 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人