简单模拟——陶陶摘苹果(升级版)

·今天蒟蒻再次脑抽。。。这题竟然调了一个多小时!!!!???(开玩笑逗我)。。。不是这错就是那错。。。粗心到爆表。。。绝望的蒟蒻。。。

·蒟蒻的我说实话——我真是不想放这道垃圾题——但为了记录我的脑抽——还是放了。。。

·洛谷入口:P1478

·题目:

又是一年秋季时,陶陶家的苹果树结了n个果子。陶陶又跑去摘苹果,这次她有一个a公分的椅子。当他手够不着时,他会站到椅子上再试试。

这次与NOIp2005普及组第一题不同的是:陶陶之前搬凳子,力气只剩下s了。当然,每次摘苹果时都要用一定的力气。陶陶想知道在s<0之前最多能摘到多少个苹果。

现在已知n个苹果到达地上的高度xi,椅子的高度a,陶陶手伸直的最大长度b,陶陶所剩的力气s,陶陶摘一个苹果需要的力气yi,求陶陶最多能摘到多少个苹果。

·代码内容:

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=5005;
int n,s,a,b;
struct node
{
	int c;
	int z;
}x[maxn];
int main()
{
	cin>>n>>s;
	cin>>a>>b;
	for(int i=1;i<=n;i++)
	{
		cin>>x[i].c;
		cin>>x[i].z;
		}
	int h;h=a+b;
	int ans;ans=0;
//核心!!!
	for(int i=n-1;i>=1;i--)
	for(int j=1;j<=i;j++)
	{
		if(x[j].z>x[j+1].z)
		{
			swap(x[j].c,x[j+1].c);
			swap(x[j].z,x[j+1].z);
		}
		}
//结构体排序!!!
	for(int i=1;i<=n;i++)
	{
		if(x[i].c<=h)
		{
			s-=x[i].z;
			if(s<0)break;
			else ans++;
		
		}
	}
		cout<<ans<<endl;
	return 0;
}

猜你喜欢

转载自www.cnblogs.com/konglingyi/p/11291212.html