這道題只要會自定義cmp恰當地進行排序,其他部分沒有什麼大問題。 上代碼: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,s,h1,h2,cnt; 4 struct apple{ 5 int height,ns;//height為蘋 ...
這道題只要會自定義cmp恰當地進行排序,其他部分沒有什麼大問題。
上代碼:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,s,h1,h2,cnt; 4 struct apple{ 5 int height,ns;//height為蘋果高度,ns是所需要的力氣 6 }a[10000]; 7 bool cmp(apple x,apple y){ 8 return x.ns<y.ns;//根據所需要的力氣由高到低進行排序 9 } 10 int main(){ 11 cin>>n>>s; 12 cin>>h1>>h2; 13 int h=h1+h2;//能夠到的高度為椅子和身高總和 14 for(int i=1;i<=n;i++){ 15 cin>>a[i].height>>a[i].ns; 16 }//輸入每個蘋果的高度和所需要的力氣 17 sort(a+1,a+n+1,cmp);//根據要求排序 18 for(int i=1;i<=n;i++){ 19 if(a[i].height>h)continue; 20 //無法摘到,下一層迴圈 21 if(a[i].ns>s)break; 22 //如果所需要的力氣超出剩餘力氣,結束迴圈 23 s-=a[i].ns;//總力氣減去這個蘋果需要的力氣 24 cnt++; 25 } 26 cout<<cnt; 27 return 0; 28 }