优先队列 3,5点不过,难过,,,

P1478 陶陶摘苹果(升级版)

一道贪心被你连STL都搞出来了QAQ``` #include<bits/stdc++.h> #include<algorithm> using namespace std; struct pg{ int gaodu; int liqi; }; bool cmp(pg a,pg b) { return a.liqi<b.liqi;//从小到大排<,若要从大到小排则> } int main () { int n=0,s=0,a=0,b=0,pig=0; pg xi[10001]={}; cin>>n; cin>>s; cin>>a>>b; for(int i=0;i<n;i++)cin>>xi[i].gaodu>>xi[i].liqi; sort(xi,xi+n,cmp); for(int i=0;i<n;i++){ if(s<0)break; if(xi[i].gaodu<=a+b){ if(s-xi[i].liqi<0)break; pig++; //cout<<xi[i].gaodu<<" "<<xi[i].liqi<<" "; } else continue; s=s-xi[i].liqi;//cout<<s<<endl; } cout<<pig<<endl; return 0; } ``` 看完代码不要抄!!!
by Hammmmmm @ 2019-07-17 21:22:18


``` #include<bits/stdc++.h> #include<algorithm> using namespace std; struct pg{ int gaodu; int liqi; }; bool cmp(pg a,pg b) { return a.liqi<b.liqi;//从小到大排<,若要从大到小排则> } int main () { int n=0,s=0,a=0,b=0,pig=0; pg xi[10001]={}; cin>>n; cin>>s; cin>>a>>b; for(int i=0;i<n;i++)cin>>xi[i].gaodu>>xi[i].liqi; sort(xi,xi+n,cmp); for(int i=0;i<n;i++){ if(s<0)break; if(xi[i].gaodu<=a+b){ if(s-xi[i].liqi<0)break; pig++; //cout<<xi[i].gaodu<<" "<<xi[i].liqi<<" "; } else continue; s=s-xi[i].liqi;//cout<<s<<endl; } cout<<pig<<endl; return 0; } ```
by Hammmmmm @ 2019-07-17 21:22:49


|