4 条题解
-
1
看到这么多指针,那我就来个桶排吧 #include<bits/stdc++.h>
using namespace std;
int n,a[1001000],t,x,Ans;
int main() {
cin>>x>>n;
for(int i=1;i<=n;i++){
cin>>t;
a[t]++;
} Ans+=a[x];
a[x]=0;
for(int i=1;i<=x;i++){
if(!a[i])continue;
for(int j=x-i;j>=1;j--){
if(i==j)continue;
int t=min(a[i],a[j]);
a[i]-=t;
a[j]-=t;
Ans+=t;
if(!a[i])break;
}
}
for(int i=1;i<=x;i++){
if(a[i]==0)continue;
else{
if(i+i>x)Ans+=a[i];
else Ans+=(a[i]-1)/2+1;
}
}
cout<<Ans;
return 0;
}
-
-1
#include<bits/stdc++.h> using namespace std; int w,n; int p[30005]; int ans; signed main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>w>>n; for(int i=1;i<=n;i++) cin>>p[i]; sort(p+1,p+n+1); int l=1,r=n; while(l<=r){//双指针 if(p[l]+p[r]>w){//1. r--;//p[r]单独分一组 ans++; } else{//2. l++;r--; ans++;//一起分一组 } } cout<<ans; return 0; }
- 1
信息
- ID
- 227
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 250
- 已通过
- 125
- 上传者
