题解:SP3923 BYTESM2 - Philosophers Stone
__CrossBow_EXE__ · · 题解
题意
一个
分析
神秘动态规划。
定义
时间复杂度
代码
#include<bits/stdc++.h>
using namespace std;
#define up(_name_,_leftbound_,_rightbound_) for(auto _name_=(_leftbound_);(_name_)<=(_rightbound_);++(_name_))
inline int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int n,m;
int a[105][105];
int dp[105][105];
void solve(int cases){
n=read(),m=read();
up(i,1,n){
up(j,1,m){
a[i][j]=read();
}
}
memset(dp,0,sizeof(dp));
up(i,1,m) dp[1][i]=a[1][i];
up(i,2,n){
up(j,1,m){
dp[i][j]=max({dp[i-1][j],dp[i-1][j-1],dp[i-1][j+1]})+a[i][j];
}
}
int maxn=-1;
up(i,1,m){
maxn=max(maxn,dp[n][i]);
}
cout<<maxn<<endl;
return;
}
signed main(int argc,char *argv[]){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
T=read();
up(i,1,T) solve(i);
return 0;
}
/*
---INFORMATIONS---
TIME:2025/8/5 18:37:51
PROBLEM:SP3923
CODE BY __CrossBow_EXE__ Luogu uid967841
CEXE好闪,拜谢CEXE。
*/
已 AC。