社区讨论

求助一段代码

学术版参与者 6已保存回复 12

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
12 条
当前快照
1 份
快照标识符
@lo2g1dzh
此快照首次捕获于
2023/10/23 13:14
2 年前
此快照最后确认于
2023/10/23 13:14
2 年前
查看原帖
如下代码大数据(无数组越界)会输出负数,但是我对浮点数不是很了解,大佬们可以看一看吗/kel
CPP
#include<bits/stdc++.h>
using namespace std;
#define db long double
db dp[10001];
int n,m,i,j,k,s;
struct evs
{
	int h,v;
} a[10001];
bool cmp(evs a,evs b)
{
	if(a.h==b.h)return a.v>b.v;
	return a.h<b.h;
}
db getans(int x,int y,db z)
{
	db t=z/2;
	if(x-y<t)return z;
	return x-y+t;
}
int main()
{
	scanf("%d",&n);
	for(i=1;i<=n;i++) scanf("%d%d",&a[i].h,&a[i].v);
	sort(a+1,a+n+1,cmp);
	for(i=1;i<=n;i++) dp[i]=a[i].h;
	for(i=2;i<=n;i++)
		for(j=1;j<i;j++)
			if(a[i].v<=a[j].v)dp[i]=min(dp[i],getans(a[i].h,a[j].h,dp[j]));
	printf("%.0Lf",ceil(dp[n]));
	return 0;
}

回复

12 条回复,欢迎继续交流。

正在加载回复...