社区讨论

82pts求调

P2858[USACO06FEB] Treats for the Cows G/S参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mhj8x0o4
此快照首次捕获于
2025/11/03 22:39
4 个月前
此快照最后确认于
2025/11/04 10:37
4 个月前
查看原帖
wa了最后两个点
CPP
#include<iostream>
#include<algorithm>
using namespace std;
long long n,a[1005],dp[1005][1005];
void luogu(){
	for(int i=1;i<=n;i++)
		dp[i][i]=a[i]*n;
}
/*
            1 5
           /   \
         1 4   2 5
        /   \ /   \
      1 3   2 4   3 5
     /   \ /   \ /   \
   1 2   2 3   3 4   4 5
  /   \ /   \ /   \ /   \
1 1   2 2   3 3   4 4   5 5
O(n^2)  tip:这里如果标箭头的话应该往下指,表示分解 
*/
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n;
	for(long long i=1;i<=n;i++)cin>>a[i];
	luogu();
	for(long long len=2;len<=n;len++){
		for(long long s=1;s<=n+1-len;s++){
			long long e=s+len-1;
			dp[s][e]=max(dp[s][e-1]+a[e]*(n+1-len),dp[s+1][e]+a[s]*(n+1-len));
		}
	}
//	for(long long i=1;i<=n;i++){
//		for(long long j=1;j<=n;j++){
//			printf("%d ",dp[i][j]);
//		}
//		printf("\n");
//	}
	cout<<dp[1][n];
	
	return 0;
}

回复

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

正在加载回复...