其他分享
首页 > 其他分享> > p1094 纪念品分类

p1094 纪念品分类

作者:互联网

这是一道贪心题目,根据题意,我们可以这样想,如果最大的价格与最小的价格组成一组都不能够满足要求的话,那么就只能把最大的价格单独作为一组,作为一个自学的小菜鸡,我是因为超时,一步步优化从60,到80,再到AC过来的,以下是我的代码。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int w,g,a[30010];
 4 int b=0;//b记录组数 
 5 int main(){
 6     cin>>w>>g;
 7     for(int i=1;i<=g;i++){
 8         cin>>a[i];
 9     }
10     sort(a+1,a+g+1);
11     for(int i=1;i<=g;i++){
12         for(int j=g;j>=i;j--){//注意是j>=i    
13             if(a[i]+a[j]<=w&&a[i]&&a[j]){
14                 b++;
15                 a[i]=0;
16                 a[j]=0;
17                 break;//使用break优化时间 
18             }
19             else if(a[i]+a[j]>w){
20                 b++;
21                 a[j]=0;
22             }
23         }    
24     }
25     cout<<b;
26 }

 

标签:纪念品,题意,一组,int,分类,60,p1094,价格,30010
来源: https://www.cnblogs.com/mirager/p/12368402.html