题目信息:http://acm.hdu.edu.cn/showproblem.php?pid=2545
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct pine {
double s,e;
int h;
} a[100005];
bool cmp(pine a,pine b) {
return a.s<b.s;
}
int main() {
int n,T,A;
while(~scanf("%d",&n)&&n) {
for(int i=0; i<n; i++)
scanf("%lf%d",&a[i].s,&a[i].h);
scanf("%d/%d",&T,&A);
for(int i=0; i<n; i++) {
a[i].e=a[i].s+1.0*a[i].h*A/T;
}
sort(a,a+n,cmp);
double t=a[0].e;
int cnt=0;
for(int i=1; i<n; i++) {
if(a[i].e<=t)
cnt++;
else
t=a[i].e;
}
printf("%d\n",n-cnt);
}
}
本文提供了一道来自HDU在线评测系统的编程题(编号2545)的解决方案。该题涉及结构体、排序算法及简单的数学计算。通过定义一个结构体存储树木的开始时间和高度,并使用比较函数对树木按开始时间排序,再进行遍历计算,最终输出符合条件的树木数量。
1721

被折叠的 条评论
为什么被折叠?



