好多题解的f[i][j]表示还剩[i-j]没取的最大值,如果这样写的话,最后还要取个max(f[i][i]+a[i]*2^m),如果转化一下题意来做也是可以的。
#include <bits/stdc++.h>
#define int __int128
//不会高精,只能__int128水一波了,如果考试考到,也只能放弃了
using namespace std;
const int N=81;
int n,m,ans;
int p[N],a[N][N],f[N][N];
inline int read()
{
int ret=0,ff=1; char ch=getchar();
while (!isdigit(ch)) {
if (ch=='-') ff=-ff; ch=getchar()