首页 > 其他 > 详细

p1094 纪念品分类

时间:2020-02-26 20:16:20      阅读:57      评论:0      收藏:0      [点我收藏+]

这是一道贪心题目,根据题意,我们可以这样想,如果最大的价格与最小的价格组成一组都不能够满足要求的话,那么就只能把最大的价格单独作为一组,作为一个自学的小菜鸡,我是因为超时,一步步优化从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 }

 

p1094 纪念品分类

原文:https://www.cnblogs.com/mirager/p/12368402.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!