【51NOD】独木舟
【算法】贪心
【题解】比较经典,用l,r两个定位指针分别从左右向中间推进。
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int maxn=10010; int n,m,a[maxn]; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)scanf("%d",&a[i]); sort(a+1,a+n+1); int ans=0,l=1,r=n; while(l<r) { if(a[l]+a[r]<=m)ans++,l++,r--; else ans++,r--; } if(l==r)ans++; printf("%d",ans); return 0; }