2 条题解
-
0
贪心 用的while语句,没用2层for循环
#include <bits/stdc++.h> using namespace std; int w,n,a[30010],ans=0; int main(){ //freopen("kaj.in","r",stdin); //freopen("kaj.out","w",stdout); cin>>w>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); int i=1,y=n; while(i<=y){//从小匹配大的 if(a[i]+a[y]<=w){ ans++; i++; y--; }else{ ans++; y--; } }//两边同时进行,加减数 cout<<ans; return 0; }
仅供参考
信息
- ID
- 444
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 133
- 已通过
- 24
- 上传者