请求帮忙解释一下
  • 板块灌水区
  • 楼主cxsxlg
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/1/24 21:44
  • 上次更新2023/10/28 11:15:42
查看原帖
请求帮忙解释一下
538258
cxsxlg楼主2022/1/24 21:44
#include<bits/stdc++.h>//mlgb就能买卖两次,我tm没有看见 
using namespace std;
int b[100009];
int dp[100009];
int d[100009];
int main()
{
	int t,n;
	cin>>t;
	int maxs=0;
	for(int q=1;q<=t;q++)
	{
		cin>>n;
		maxs=0;
		memset(dp,0,sizeof(dp));
		memset(d,0,sizeof(d));
		for(int i=1;i<=n;i++)
		{
			cin>>b[i];
			dp[i]=dp[i-1];
			for(int o=1;o<=i-1;o++)
			{
				dp[i]=max(dp[i],b[i]-b[o]);
			}
		}
		for(int i=n;i>=1;i--)
		{
			d[i]=d[i+1];
			for(int o=i+1;o<=n;o++)
			{
				d[i] = max(d[i],b[o]-b[i]);
			}
			if(maxs<dp[i]+d[i]) maxs=dp[i]+d[i];
		}
		for(int i=1;i<=n;i++)
		{
			cout<<" "<<dp[i]<<" "<<d[i]<<endl;
		} 
		cout<<"---"<<maxs<<endl;
	}
	return 0;
}

这是noi的题,我洛谷找不到P8464 老师说有两次买卖,我知道,但这样它不会重合吗,就像

6 8 7 4 1 -2

第一次是从前往后找,第二次是从后往前找,第一次的买卖的4不会和第二次买卖的7重合吗,这样是不行的阿,但我测试了一下又没有错。求解释一下,谢谢

2022/1/24 21:44
加载中...