- 博客(10)
- 收藏
- 关注
原创 UVA10245 - The Closest Pair Problem
题意:找出距离最近的两个点思路:直接暴力搜索,但要剪枝才能过,不然会超时#include #include #include #include using namespace std;struct node{ double x, y;}n[10005];int cmp(node a, node b) { return a.x < b.x;}
2013-12-17 20:48:49 589
原创 UVA507-Jill Rides Again
思路:有关最大连续和的问题,一开始直接用两个for求出最大连续和,果断超时了,之后看了大神的思路,直接将时间复杂度降到O(n),就是记录i点到初始点的距离。假设你要求i点到j点的距离,只要用a[j] - a[i]就行了,不过要注意题目要求当连续最大和相等时,长度越长越好#include #include #include #define N 20005using name
2013-12-17 20:46:43 628
原创 UVA10041 - Vito's family
思路:要使一组数中,其中一个数跟其他数的差的绝对值的和最小,那个数就是中位数#include #include #include #include #include #define N 505using namespace std;int arr[N];int main() { int cas; scanf("%d", &cas); while (
2013-12-17 20:37:49 727
原创 UVA10670-Work Reduction
题意:老板给你工作范围,然后你不可能全部都独自完成,之后有公司帮你做工作,包括完成工作的一半需要的代价,和完成一件工作的代价,计算出雇佣每个公司所花费的代价,按升序排列。思路:贪心,每次选择最节省的办法。不过要注意这句话的意思(rounding down when necessary). 完成一半的要四舍五入#include #include #include #inc
2013-12-17 20:34:36 655
原创 UVA11129
题意:给定一个大小为n的数组,要求输出数组中每个长度超过3的子序列不是等差数列的数组思路:百度了分治算法,然后参考了别人的做法,也就是一个大的问题,分为n个子问题,只要所有子问题符合了条件,证明整个大问题也符合了条件对于一个等差的序列。如0 1 2 3 4 5 我们可以这样做,把他分离成2部分等差子序列0 2 4和1 3 5然后组合成一个新的序列0 2 4 1 3 5。这样做的话,可以保证
2013-12-09 21:09:48 750
原创 UVA993
题意:输入一个自然数m,之后找出一个自然数q,使得这个数各个位上的数字之和等于输入的自然数思路:搜索,就从9开始一直到2,是否能被输入的数整n除,可以的话,不断更新m的数值,贪心思想;不过要特判m=1的情况#include #include #include #include #define N 100000using namespace std;int arr[N];
2013-12-09 21:03:55 641
原创 UVA11054
题意:小镇上的居民,不外乎卖酒与买酒,但需要计算路程费用,要求计算出最小路程费用,使得居民都能进行买卖思路:贪心,小镇的居民都是相邻的,假设有5个居民,如样例,分别为5,-4,1,-3,1,其实我们可以只考虑相邻间的买卖,比如第一个需要5个,他可以完全向第二个买5个,虽然第二个只卖4个,但是可以算成第一个需要的5全向第二个买,变成满足了第一个的需求,第二个欠1,也就是-1,以此类推,所得到的费
2013-12-05 21:01:04 934
原创 UVA10602
题意:输入一些字符串,要求所需按键的次数最小思路:先将所有字符串排序,然后再将前一个与后一个比较,找出要按键的次数,然后进行累加,刚开始WA是因为写成,计算两个字符串不同的字母,实际是要在出现第一个字符出现不同后,后面的字符全都要用按键输入了。#include #include #include #define N 105using namespace std;char
2013-12-05 20:44:12 684
原创 UVA10020- Minimal coverage
思路:贪心,关于区间最小问题,先将区间排序 ,然后不断更新start的值。#include #include #include #define N 100005using namespace std;struct node { int x, y;}a[N], b[N];int cmp(node a, node b){ return a.
2013-12-05 20:28:50 722
原创 FZU1894
题意:队列问题,C为入队列,Q为输出队列中RP的最大值,G为删除队列头的元素思路:看了别人的思路,用数组模拟单调队列#include #include #define MAXN 1000100typedef struct { int value; int num;}QUEUE;QUEUE queue[MAXN];int main() { int T
2013-12-05 20:24:32 732
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人