算法竞赛入门经典 解题报告
THOUSANDCODES
这个作者很懒,什么都没留下…
展开
-
第三章:UVa227 解题报告
UVa227 解题报告这是一道final题,但是没有什么算法难度。只需要模拟即可,但是如果用std::getline(),配合string输出会WA,具体原因我也没有探究清楚,如果改为gets(),配合char数组就没有问题。注意不合法操作的边界判断。 以下是代码(可直接AC):#include <iostream> #include <string> #include <cstring> #in原创 2015-05-03 10:25:55 · 378 阅读 · 0 评论 -
第三章:UVa1586 解题报告
UVa1586 解题报告本题可以使用STL来简化操作。我使用扫描字符串一次并处理数字后相乘的办法将所有的C、H、O、N分成小块,分别计算分子量之后相加。扫描字符串时只关注当前下标i对应的s[i]是不是字母,如果是,而且字母后面是数字,就提取数字后和字母的分子量相乘,加到总分子量中。如果s[i]是字母,但s[i+1]也是字母,则直接将s[i]的分子量加到总量中。在进行字符串边界处理时用了min函数,而原创 2015-04-23 00:47:52 · 618 阅读 · 0 评论 -
第三章:UVa1585 解题报告
UVa1585 解题报告这是一道非常入门的题,新手可以很容易的做出来。不用说太多,原理就是扫描一次string,遇到O则加分并且将用于记录当前O的分数大小的变量cnt加一,遇到X则将cnt归零(因为我计数时采用++cnt的形式)。 以下是代码(可直接AC):#include <iostream> #include <string>using std::cin; using std::cout;原创 2015-04-23 00:52:18 · 344 阅读 · 0 评论 -
第三章:UVa455 解题报告
UVa455 解题报告这是一个数周期串的问题,可以枚举周期,这样方便一些,枚举周期之后进行字符检查,看看其余字符是否符合周期规律,找到之后输出当前周期后立刻跳出。按照题目大意,周期可以为字符串的自身长度。 注意,此题卡格式,最后一行没有空行,此外,答案要先记录下来,打印的时候每个答案后面空一行。 以下是代码(可直接AC):#include <iostream> #include <string>u原创 2015-04-23 00:00:42 · 569 阅读 · 0 评论 -
第三章:UVa1225 解题报告
UVa1225 解题报告这是一个考察数组操作和数字分解的十分入门的问题。基本方法是,注册一个10个int空间的数组cnt[10],枚举当前数,将其每位分解后在cnt中统计个数。分解时采用K%10,K/10的办法,并在当前数为9、99、999、9999时将记录数的位数的变量d加一。 以下是代码(可直接AC):#include <iostream> #include <string> #includ原创 2015-04-23 00:12:07 · 367 阅读 · 0 评论 -
第三章:UVa1588 解题报告
UVa1588 解题报告这道题可以直接模拟。因为齿轮是条状,高度只有两种,所以只要匹配字符串就可以了。两个字符串的相交区域计算高度相加是不是大于3,小于3便是合法的配对。处理A、B两个字符串时枚举B在总长中的起点和B的自身下标后进行匹配即可。以A的0下标为原点,B的0下标设为起点,这样B的起点从负数-B.length()开始,一直到A.length()+B.length(),然后B在A上左右滑动,寻原创 2015-05-06 00:01:54 · 2040 阅读 · 0 评论