- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 UVa1388 - Graveyard
题意:初始把n个纪念碑均匀放在周长为10000的类似圆形的边界上,后来增加m个 纪念碑,问将n+m个纪念碑均匀放置,问原来的n个纪念碑总共最小移动距离思路:如果先将n个纪念碑当作初始状态,而将n+m个纪念碑作为最终状态,因为中间其它的纪念碑的变化状态多,比较复杂。可以反过来思考,将n+m个纪念碑作为起始状态,而将n个纪念碑作为最终状态,并且假设周长为n+m,这样每个纪念碑都是在坐标为整数的位置
2017-11-26 22:59:53 395
原创 数组旋转问题的应用
题意:给出一个包含n个元素的数组a和包含m个元素的数组p,其中p中元素的和等于n,p中的每个元素表示将数组a的对应的个数当作一个集合,问将数组a返转后是怎样的思路:数组旋转算法代码如下:#include using namespace std;class RotateStrategy{public: virtual void rotateArr(int *a, in
2017-11-24 21:55:28 456
原创 UVa11300 Spreading the Wealth(数学问题)
题意:给出n个人,每个人有一些金币,可以给一些金币左边或者右边的人,最终使得每个人有相同的金币,问最小的转移金币是多少?思路:可以假定给金币方向是逆时间方向,值可能是正负。M表示最终每个人有的金币,用xi表示第i个人所给的,Pi表示第i个人有的金币有M = P1 - x1 + x2 => x2 = x1 - (P1 - M) => x2 = x1 - c1P2 - x2 + x3
2017-11-17 22:02:59 887
原创 UVa 11729 - Commando War(贪心算法)
题意: 给n个士兵分配任务,用b表示分配时间,j表示任务完成需要的时间,分配任务是串行的,执行任务是并行的,问算上总共时间需要最小的方案思路:代码如下:#include #include #include #include using namespace std;class Job{private: int b, j;public: Job(int b,
2017-11-11 13:00:10 607
原创 UVa11292 - Dragon of Loowater(贪心)
题意:有一个恶龙有n个头,n个头在不同的高度,m个武士,武士只能砍到比它矮的头,而雇佣武士的费用就是武士的高度值,要求以最少的费用来杀到这条恶龙。思路:在砍一个头时,总是选取比这个头高度大但是在武士身高中最小的。代码 如下:#include #include #include #include using namespace std;class Solution{pu
2017-11-10 22:55:37 409
Ubuntu Linux实用学习教程.pdf
2009-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人