codevs 2075 yh女朋友的危机
生活随笔
收集整理的這篇文章主要介紹了
codevs 2075 yh女朋友的危机
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述?Description
不知為什么,yh的女朋友們都掉入了一個深度為h的天坑。由于天坑太深,yh的女朋友們無法爬出去,于是她們決定用搭人梯的方式脫困。我們知道yh的每位女朋友從腳到肩膀的高度ai,以及肩膀到伸直手臂的距離bi。由k個人搭成的人梯的高度為a1+a2+…+ak+bk;當人梯高度大于等于h時,第k個人就可以爬出天坑,并再也不進來。你能幫助他的女朋友們安排一個方案,使得最多的女朋友能爬出天坑嗎?
輸入描述?Input Description
第一行一個整數n,表示有n個女朋友掉進坑里
第2行到第n+1行,每行兩個整數,表示女朋友從腳到肩膀的距離ai和從肩膀到伸直手臂的距離bi。
第n+2行為一個整數h,表示天坑深度為h。
輸出描述?Output Description
輸出一行,一個整數,表示最多能爬出天坑的女朋友的數量
樣例輸入?Sample Input
2
20?10
5?5
35
樣例輸出?Sample Output
1
數據范圍及提示?Data Size & Hint
對于40%數據,n≤100
對于100%數據,n≤2000,ai,bi,h≤100000
代碼:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int f[4001],n,h,ans; struct node {int ax,ay; }a[2001]; bool cmp(const node&x,const node&y) {return x.ax+x.ay<y.ax+y.ay; } int main() {int i,j;scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d%d",&a[i].ax,&a[i].ay);scanf("%d",&h);memset(f,-1,sizeof(f));f[0]=0;for(i=1;i<=n;i++)f[0]+=a[i].ax;sort(a+1,a+n+1,cmp);for(i=1;i<=n;i++)for(j=ans;j>=0;j--){if(f[j]+a[i].ay>=h)f[j+1]=max(f[j+1],f[j]-a[i].ax);if(f[ans+1]>=0) ans++;}printf("%d",ans);return 0; }
?
轉載于:https://www.cnblogs.com/jyhywh/p/6067246.html
總結
以上是生活随笔為你收集整理的codevs 2075 yh女朋友的危机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “宪府频闻转殿监”上一句是什么
- 下一篇: maven nexus 3 third