咱就说排序用前一位大于等于后一位过80%,改成前一位大于后一位通过,不知道为什么。真离谱,代码如下,求解 代码: #include<bits/stdc++.h> using namespace std; bool cmp(int a,int b){ return a>=b;//改成a>b通过 } int main(){ int n,h; cin>>n>>h; int num[100000+5]; int maxn=0; int a; for(int i=0;i<n;i++){ cin>>a>>num[i]; maxn=max(maxn,a); } sort(num,num+n,cmp); int ans=0; for(int i=0;i<n;i++){ if(num[i]>maxn){ h-=num[i]; ans++; } else break; if(h<=0) break; } if(h>0){ if(h%maxn==0) ans+=h/maxn; else ans+=h/maxn+1; } cout<<ans<<endl; return 0; }