Sorting/Searching
文章平均质量分 75
buxizhizhou530
这个作者很懒,什么都没留下…
展开
-
UVa 340 猜数字游戏的提示
题意:题目看起来有点难,特别是看到choose、max的时候,其实认真看完,就是对比两行,相同位置元素相同,则是强匹配;否则,元素相同,而位置不同,则是弱匹配。思想:强匹配,过一遍,对比相应位置,相同则+1,即可;弱匹配,它是要把之前的强匹配过的不进行匹配的,而且一个元素只能弱匹配成功一次,即一个元素匹配成功一次后不再匹配。这里我用的是指示数组,在弱匹配时,查找该bool数组,如果已经访问过,原创 2014-03-10 23:42:17 · 1045 阅读 · 0 评论 -
UVa 10785 疯狂的命理学家
题意:题目是要构造长度为n的串,有以下要求,1.元音和辅音的值都最小,值定义见题目;2.先放元音再放辅音,一直这样交替;3.任一个辅音字母不超过5次,任一个元音字母不超过21次;4.在满足上述要求的情况下,保持字母序,而且首要保证的是条件1,其次才考虑条件4的字母序。思路:对于条件1,不用计算,也不用考虑他俩值的和最小后、会不会一个大而另一个小,因为每次其实都是取最小值的元音和辅音的~ 这样的原创 2014-03-24 19:46:33 · 881 阅读 · 0 评论 -
UVa 755 487-3279
思路:注意:1.在用getchar()处理一行和到文件尾时有些模糊,最开始我写的好像是while的判断条件是!=EOF,而其实只有最后一组数据才会遇到EOF的。这样好像会导致RE错误。(遇到RE错误时,还以为是开了太大的数据,就把int cs[100010]给注释掉而用一个变量cnt来处理了。结果还是RE)上一题好像就也是这样错过,把while的条件前面加上了一个次数判断,当时没太注意,没有及原创 2014-03-23 21:54:02 · 913 阅读 · 0 评论 -
UVa 10194 足球
题意:有n组数据,每组数组先是给出一个tournament name,然后是t个球队的名字,然后g个比赛的结果,然后要输出每组数据的积分榜(standings),积分榜有多个域,这里points、games played、goal difference 是可以根据其他计算出来的。所以,对每支球队只需保存球队名、wins、ties、losses、goals scored、goals against即原创 2014-03-22 19:27:07 · 1151 阅读 · 0 评论 -
UVa 400 Unix的ls命令
题目:题目是要对输入的每组文件名进行规则化输出,除了最后一列,其他列的宽度为maxlen+2,最后一列宽度为maxlen。maxlen为最长字符串的长度。(这个题看了好几遍都没看懂题意,最后google出来的才从博客明白此题题意。。之前自己一直是在数每列最长字符串后的空格数,总是明白不了题意。The rightmost column will be the width of the longest原创 2014-03-17 01:48:09 · 1760 阅读 · 0 评论 -
UVa 299 列车调度
思路:好吧,这是一道水题。。(这样说是不是太不好了?)主要就是求逆序对数,即 ia[j]的总个数 记得算法导论里分治法排序那部分有提到逆序对问题。本来打算用分治法的,发现这题规模比较小,而且按照白书的安排,好像暂时不需要这样的算法~结果直接O(n2)的算法就过了~Code:#include#define N 55int num[N];int main()原创 2014-03-13 00:16:47 · 929 阅读 · 0 评论 -
UVa 120 煎饼堆
思路:flip i操作是从第0个到倒数第i个数颠倒、即对调位置。题目是要求将每组数据进行变换到升序的操作序列。思想是从后到前来排,先排最大的数字到其正确的位置,然后依次。所以,首先要将其排序,找出数字间的顺序关系。然后搜索要排的数字a在现在序列中的位置x,找到该位置后,肯定是进行此位置的flip操作,即flip x,将其变换到首位置,然后再进行一次flip y位置,将首位置的该数据放在y位置。原创 2014-03-15 00:49:42 · 1559 阅读 · 0 评论 -
UVa 156 反片语
题目:题目是要找出ananagram。什么是ananagram?它是anagram的反面。anagram是什么呢?就是在给定字典中可以通过字母重排得到的字符串,而且忽略大小写。(因为看错了那两个单词,一直对ananagram的定义很困惑,因为一会儿感觉字母重排可得到的是,一会儿感觉字母重排不可得到的是,其实那是两个单词。)思路:先对输入词典进行词典排序,构建每个词的对应的顺序单词(即每个词在原原创 2014-03-16 01:20:24 · 1654 阅读 · 0 评论 -
UVa 152 一堆树
思路:题目是让计算每棵树与其他树距离的最小值,然后找出这些最小值落在[0,1),[1,2)...一直到[9,10)区间,各个区间内点的个数。直接计算就行了,这里我每计算一次距离,更新了两个点的的min值。两个for循环相当于一个上三角或下三角矩阵,少了一半的计算。注意:这里距离的定义就是三维空间中欧氏距离,我怎么把那个平方忘了(看样例的时候,前两项都是0,第三项是相差的平方再开方,结果因为只有原创 2014-03-12 21:59:49 · 966 阅读 · 0 评论 -
UVa 10474 大理石在哪?
思路:保存前一组数据,排序,后一组数据在前组数据中查找。注意:题中,Be assured, none of the input numbers are greater than 10000 and none of them are negative.这句话意思是输入的每个数字都不会超过10000,所以输入规模在10000。(我本来以为这是每组数据的数字,没提到输入规模呢,输入规模前面有提到每组原创 2014-03-12 19:19:02 · 711 阅读 · 0 评论 -
UVa 10420 战利品列表
思想:保存每个国家名,然后进行排序。之后是类似一个去重的过程,我立马想到 UVa 10815安迪的第一个字典那题,也就是我这里贴的第一篇UVa 的文,每次都是判断相邻的,这里如果和下一个相同,则下一个的个数+1,本来打算用num数组标记每个相应元素个数的,但我懒得初始化为1,让它默认为0了,这样就比较麻烦了,还是用一个变量来计数就可以了。(看着很简单的题,第一次还是WA了,因为那个计数,导致我还怀原创 2014-03-10 23:57:14 · 815 阅读 · 0 评论 -
UVa 123 快速查找
思路:题目是先给出一系列要忽略的词(感觉像中文分词时候的去除停用词),然后在一系列titles中找keyword并排序输出。这里排序首先是按关键字的字母序,如果两个title有相同关键字,就按输入时title先出现的顺序;如果一个title里出现同一个词多次,就按该词在该title里的先后顺序输出。所以可以把keyword定义为一个结构体,然后给结构体排序,给结构体的排序用到的是qsort么,而q原创 2014-03-21 18:39:50 · 1584 阅读 · 2 评论