求助关于此题后两点不知名原因RE
查看原帖
求助关于此题后两点不知名原因RE
145980
云墨·流星楼主2022/7/4 17:06

代码如下

#include<iostream>
#include<iomanip>
using namespace std;
double dx,c,dy,p,maxn,ans,sum;
int n,k; 
struct node{
	double dis,cos;
}dp[10];
bool flag;
void f(int x)
{
	int s=x+1;
	if(dp[x+1].dis-dp[x].dis>maxn)
	{
		flag=false;
		return;
	}
	for(int i=x+1;dp[i].dis-dp[x].dis<=maxn;i++)
	{
		if(dp[i].cos<dp[x].cos)
		{
			sum=(double)(dp[i].dis-dp[x].dis)/dy*1.0*dp[x].cos;
			k=i;
			return;
		}
		if(dp[i].cos<dp[s].cos)
		{
			s=i;
		}
	}
	sum=(double)(dp[s].dis-dp[x].dis)/dy*1.0*dp[x].cos;
	k=s;
}
int main()
{
	cin>>dx>>c>>dy>>p>>n;
	if(n==0)//0车站直达情况 
	{
		cout<<fixed<<setprecision(2)<<(double)dx/dy*1.0*p<<endl; 
		return 0;
	}
	dp[0].dis=0;
	dp[0].cos=p;
	dp[n+1].dis=dx;
	dp[n+1].cos=0;
	for(int i=1;i<=n;i++)
	{
		cin>>dp[i].dis>>dp[i].cos;
	}
	maxn=c*dy;
	int now=0;
	while(now<=n+1)
	{
		flag=true;
		sum=0;
		f(now);
		if(!flag)
		{
			cout<<"No Solution"<<endl;
			return 0;
		}
		ans+=(double)sum;
		now=k;
	}
	cout<<fixed<<setprecision(2)<<ans<<endl;
	return 0;
}

RE点反馈: Runtime Error. Received signal 11: Segmentation fault with invalid memory reference. 运行时错误。

接收到的信号11:内存引用无效的分段故障。

刷了一下午一直没变


2022/7/4 17:06
加载中...