代码
#include<bits/stdc++.h>
using namespace std;
int T, n, a[110][110], f[110][110];
int main()
{
cin>>T;
while (T--)
{
cin>>n;
for (int i=1;i<=n;i++)
for (int j=1;j<=i;j++)
cin>>a[i][j];
for (int i=1;i<=n;i++)
f[n][i]=a[n][i];
for (int i=n-1;i>=1;i--)
for (int j=1;j<=i;j++)
f[i][j]=max(f[i+1][j],f[i+1][j+1])+a[i][j];
cout<< f[1][1];
}
return 0;
}
代码
#include<bits/stdc++.h>
using namespace std;
const int oo=1000000;
int n,s[101],d[101],f[101],ans,maxAns;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>s[i];
maxAns=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++){
int sj=i+j-1;
if(sj>n)
sj-=n;
d[j]=s[sj];
}
for(int i=1;i<=n;i++)
f[i]=1;
f[0]=0;
d[0]=-oo;
for(int i=1;i<=n;i++)
for(int j=0;j<i;j++)
if(d[j]<d[i]&&f[j]+1>f[i])
f[i]=f[j]+1;
ans=0;
for(int i=1;i<=n;i++)
ans=max(ans,f[i]);
if(ans>maxAns)
maxAns=ans;
}
cout<<maxAns;
return 0;
}
那位Dalao能帮帮我~