![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
贪心
贪心
kelianlee
这个作者很懒,什么都没留下…
展开
-
Zombie's Treasure Chest UVA - 12325(贪心枚举)
题意 给你一个背包体积为n,现在有两种价值的物品,s1表示1号物品的体积,v1为价值s2,v2代表第二种物品。两种物品能够无限拿,问你最大的价值为多少 思路 看到这个很容易想到背包问题,但是longlong类型的数组存不下,所以我们考虑贪心策略。 s2件一号物品和s1件2号物品,两者的体积相同,在体积相同的情况下优先拿价值高的,所以我们进行比较sum1,sum2,如果sum1>=su...原创 2019-08-11 17:06:18 · 160 阅读 · 0 评论 -
Stay Real HDU - 6645(优先队列贪心)
优先队列来存储因为优先队列的插入是logn的这样就是nlogn了不然用排序的话变成n2logn #include <iostream> #include <algorithm> #include <stack> #include <cstring> #include <queue> using namespace std; int ...原创 2019-08-07 21:48:59 · 291 阅读 · 0 评论 -
UVA 11054 Wine trading in Gergovia
思路 用扫描线加贪心,贪心策略是就往相邻的买,然后扫描线一遍, #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #define N 100005 using namespace std; int a[N]; int main () {...原创 2019-08-21 22:33:38 · 114 阅读 · 0 评论 -
UVA11491 - Erasing and Winning
题意 给你n个数要求删除m个使得剩下的数最大 思路 采用贪心策略,我们每次只要从可以选择的一个区间里面选择一个最大的数字就可以了,这样每次取完之后就是最大值。 刚开始由于要保留n-m个数所以我们应该从m个数里面取最大值,每次增大这个区间,但是有个情况,对于当前元素,已经是最优值了并且从这个值开始后面的数字都满足,所以就直接输出就行,排序的时候还要注意按照id来排序 #include &...原创 2019-09-23 21:06:54 · 151 阅读 · 0 评论 -
Crane UVA - 1611
题意 给你一个排列,每次可以选择偶数长度的区间,交换这个区间的左右两半的数,问你操作数将其从小到大排序 思路 类似于选择排序,我们每次将一个数归位,这样我们只需要考虑对于当前的 j 在 j 右边的所有数就可以了,对于 j ,pos[j]表示现在 j 这个数的位置,我们考虑pos[j]-1-j+1,n-j+1两者的长度,如果后者长度小于前者,这样我们交换一次就能是的 j 归位置,否则如果后者的...原创 2019-09-24 21:23:24 · 212 阅读 · 0 评论 -
Generating Permutations UVA - 11925
题意 给你一个1..n的递增排列,问你操作1,2时期变成给出的序列 思路 我们考虑逆着操作,我们将给定的序列变成递增的序列,这时候操作2变成将末尾的数字移动到前面,这时候操作就很明显了,对于前面两个数字我们每次交换两者,保证前面的数字比较大,然后将大的移动到最后面,特殊情况是 4 1 2 3 这种情况做个特判就好了 #include <iostream> #include &...原创 2019-09-24 21:57:23 · 82 阅读 · 0 评论