不知道原先的方法为什么错qwq
查看原帖
不知道原先的方法为什么错qwq
1227031
ARTI001楼主2024/10/14 17:20
这是原先的方法:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll n,s,c[10005],y[10005],p[1005],ans;

int main()
{
	cin>>n>>s;
	cin>>p[1]>>y[1];
	for(int i=2;i<=n;i++)
	{
		cin>>c[i]>>y[i];
		p[i]=min(c[i],p[i-1]+s);
	}
	for(int i=1;i<=n;i++)
	{
		ans+=p[i]*y[i];
	}
	cout<<ans;
	return 0;
}

/*这是改进之后的:*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll n,s,c[10005],y[10005],p[1005],ans;

int main()
{
	cin>>n>>s;
	cin>>p[1]>>y[1];
	ans+=p[1]*y[1];
	for(int i=2;i<=n;i++)
	{
		cin>>c[i]>>y[i];
		p[i]=min(c[i],p[i-1]+s);
		ans+=p[i]*y[i];
	}
	cout<<ans;
	return 0;
}
感觉两个没有差别但是原先的错了256三个点qwq,求助大佬们
2024/10/14 17:20
加载中...