题解 1107: 纪念品分组

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

qsort, 最小最大, 次小次大, (c语言)

解题思路:用qsort先排序,从刚开始最小去加最后的最大,能加说明有一组,不能加说明最大的不行,要单独给他一组.接着去寻找次大的和最小的.如果能加,找次小的和次大的.最后如果跳出循环时i==j说明中间还有一组,最后加上.跳出循环时i>j就不用加,

C++ 贪心+双指针 O(N)复杂度

``````````cpp#includeusingnamespacestd;#definelllonglong//纪念品分组namespacetest29{llw,n;voidtest(){cin>>w>>n;//w:价格之和n:纪念品总数vectorvec;for(inti=0;i

贪心法解纪念品分组问题

解题思路:先接受数据,将对应数量的纪念品价值进行从小到大排序,再利用双指针法进行分组计数,左右指针指向纪念品价值之和不大于上限时,左指针右移,右指针左移,否则只移动右指针将右边的纪念品单独分为一组,每次记录分组数目,最后输出即为结果注意事项:注意要先正向排序,
优质题解

纪念品分组—双指针(简单易懂)

摘要:解题思路:双指针,通过两个变量i,j分别从左和从右遍历整个数组(需先排序)当gifts[i] + gifts[j] >w时,说明没有任何一个物品可以和gifts[j]一组还能保证小于限定值w(因为gi……

纪念品分组 较为简单

摘要:解题思路:注意事项:参考代码:#include<stdio.h>#include<algorithm>using namespace std;int a[31111];int main(){     ……

纪念品分组

摘要:W=int(input())n=int(input())lst=[]num=0for i in range(n):    lst.append(int(input()))lst.sort()while……

纪念品分组(qsort)

解题思路:先排序,由小到大,从最小和最大相加开始,进行判断是否要分为一组,然后最小向前移,最大往后移。注意事项:这个题并未要求范围大小,个人觉得还是有问题的,刚开始数组开小了测试数据只能对一半,后面调大了才完全正确的;参考代码:#include#includein

排序,索引查找o_O

摘要:解题思路:注意事项:参考代码:w = int(input())n = int(input())arr = []for i in range(n):    a = int(input())    arr……