其他分享
首页 > 其他分享> > CD91 排成一条线的纸牌博弈问题

CD91 排成一条线的纸牌博弈问题

作者:互联网

题目

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 5010;
int a[N], f[N][N], s[N][N];
int main(){
	int n;
	cin>>n;
	for(int i = 1; i <= n; i++) cin>>a[i];
	for(int len = 1; len <= n; len++){
		for(int i = 1; i + len - 1 <= n; i++){
			int j = i + len - 1;
			f[i][j] = max(a[i] + s[i+1][j], a[j] + s[i][j-1]);
			s[i][j] = min(f[i+1][j], f[i][j-1]);
		}
	}
	cout<<max(f[1][n], s[1][n])<<endl;
} 

标签:博弈,纸牌,int,最大值,len,CD91,一条线
来源: https://blog.csdn.net/SYaoJun/article/details/120603204