#1就WA,悬关
查看原帖
#1就WA,悬关
368111
_Haoomff_楼主2024/5/19 20:38

rt.样例都对了qwq

#include<bits/stdc++.h>
#define p 998244353
using namespace std;
typedef long long ll;
int t,n,a[1005];
ll dp[1005][1005][2];
inline ll pow_mod(int a,int b){
	if(a==0&&b==0)return 0;
	ll res=1;
	while(b){
		if(b&1)res=res*a%p;
		a=a*a%p;b>>=1; 
	}
	return res;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>t;
	for(;t--;){
		cin>>n;
		for(int i=1;i<=n;++i)cin>>a[i];
		for(int i=1;i<=n;++i)
			for(int j=1;j<=n;++j)
				dp[i][j][0]=dp[i][j][1]=0;
		for(int len=2;len<=n;++len)
			for(int i=1,j=i+len-1;j<=n;++i,++j){
				dp[i][j][0]=max(dp[i+1][j][0]+pow_mod(a[i],a[i+1]),dp[i+1][j][1]+pow_mod(a[i],a[j]));
				dp[i][j][1]=max(dp[i][j-1][0]+pow_mod(a[j],a[i]),dp[i][j-1][1]+pow_mod(a[j],a[j-1]));
			}
		cout<<max(dp[1][n][0],dp[1][n][1])<<"\n";
	}
	return 0;
}
2024/5/19 20:38
加载中...