题目连接:uva 239 - Tempus et mobilius. Time and motion
题目大意:古代有一个计时器,由n个编号从1~n的球组成,然后有三个轨道,分别对应的是1分钟,5分钟,1小时,例如各个轨道都有一个球的时间为1小时6分钟。计时器的工作原理是每一分钟从球堆里滚出一个球到1分钟的轨道上(球堆是一个队列),特殊情况是1分钟的轨道上有了4个球,再进1个球的话就表示5分...
分类:
其他好文 时间:
2014-08-14 01:30:47
阅读次数:
223
UVA 12130 - Summits
题目链接
题意:给定一个h * w的图,每个位置有一个值,现在要求出这个图上的峰顶有多少个。峰顶是这样定义的,有一个d值,如果一个位置是峰顶,那么它不能走到不大于该峰顶高度 - d的位置,如果满足这个条件下,并且无法走到更高的山峰,那么它就是峰顶
思路:利用贪心的策略,把所有点丢到优先队列,每次取出最高的峰值开始找,进行广搜,搜的过程中记录...
分类:
其他好文 时间:
2014-08-14 01:29:57
阅读次数:
179
题目链接:uva 11330 - Andy's Shoes
题目大意:小andy有很多鞋,穿完到处丢,后来他把所有鞋都放回鞋架排成一排,保证了鞋的左右交替,但是颜色混了。问说他至少移动多少次可以将鞋分类好。
解题思路:对应奇数位置为左鞋,偶数位置为右鞋,一双鞋只有一只左鞋和一只右鞋,保证不换左变鞋子,以左鞋的位置为基准换右边鞋子,对应右边鞋子的位置即为一个置换,将置换的循环分解为x个互...
分类:
其他好文 时间:
2014-08-14 01:29:37
阅读次数:
309
题目链接:uva 11255 - Necklace
题目大意:给定3种颜色的珠子个数,要求所有的珠子都用上的情况下有多少种不同的项链,旋转翻转视为同一种。
解题思路:等价类的计数,polya。
旋转:有0,1,~ n-1步。翻转:考虑n为奇数偶数,奇数下,有n条对称轴(过一点)偶数时,有n/2条过两点,n/2条不过点。
#include
#include
#include ...
分类:
其他好文 时间:
2014-08-14 01:29:17
阅读次数:
185
题目链接:uva 1016 - Silly Sort
题目大意:给定一个长度为n的序列,每次操作可以交换任意两个数的位置,代价为两个数的和,求最小代价,将序列排成有序的。
解题思路:给定序列根据数的大小映射成一个置换,分解置换的循环,对于每个循环中,肯定是用值最小的逐个去交换的代价最小,但是要考虑,可以将最小的值与序列中最小值交换,用它代替去交换,最后再换回来。取两种情况中最优的。
...
分类:
其他好文 时间:
2014-08-14 01:28:47
阅读次数:
195
题目链接:uva 716 - Commedia dell' arte
题目大意:给定一个三维的八数码,0表示空的位置,问说是否可以排回有序序列。
解题思路:对于n为奇数的情况,考虑三维八数码对应以为状态下去除0的时候逆序对数,偶数的情况下,考虑将0的位置转移到(n,n,n)位置后对应序列的逆序对数。如果逆序对数为偶数即为可以,奇数不可以。
#include
#include
#i...
分类:
其他好文 时间:
2014-08-14 01:28:17
阅读次数:
222
刘汝佳《算法竞赛入门经典(第2版)》第4章函数和递归中,所有UVa习题的题解汇总。...
分类:
其他好文 时间:
2014-08-13 22:38:37
阅读次数:
410
Description
Problem G - Great Numbers
In this problem you have to count the number of great numbers of length n. Here a great number must have the following property:
the number must be divis...
分类:
其他好文 时间:
2014-08-13 22:35:27
阅读次数:
219
UVA 12096 - The SetStack Computer
题目链接
题意:几个操作,push是在栈顶加入一个空集,dup是复制栈顶集合,在放入栈顶,union是把头两个取并集放回,int是头两个取交集放回,add是取头两个,把第一个当成一个集合加入第二个,每次操作输出栈顶集合的里面的个数
思路:用set,stack模拟,然后利用map去hash一个集合,模拟即可
...
分类:
其他好文 时间:
2014-08-13 22:30:07
阅读次数:
370
题目:UVA - 10534Wavio Sequence(LIS)
题目大意:给出N个数字,找出这样的序列:2 * n + 1个数字组成。前面的n + 1个数字单调递增,后面n + 1单调递减。
解题思路:从前往后找一遍LIS,再从后往前找一遍LIS。最后只要i这个位置的LIS的长度和LDS的长度取最小值。再*2 - 1就是这个波浪数字的长度。注意这里的求LIS要用nlog...
分类:
其他好文 时间:
2014-08-13 22:25:17
阅读次数:
332