90求救

P1057 [NOIP2008 普及组] 传球游戏

$else$ 没去掉嘿嘿嘿,无伤大雅
by VIOLET__FOREVER @ 2023-08-22 17:04:01


@[VIOLET__FOREVER](/user/422387) 开o2(
by lcy_123 @ 2023-08-22 17:08:06


@[lcy12](/user/615490) 好像不行欸
by VIOLET__FOREVER @ 2023-08-22 18:55:26


那个点是 ```10 29```
by VIOLET__FOREVER @ 2023-08-22 18:55:49


@[VIOLET__FOREVER](/user/422387) 要不用dp做?
by lcy_123 @ 2023-08-23 07:39:52


@[lcy12](/user/615490) emm我DP水平有点不好,但是我的DP挂了,可以帮我看看麽 ```cpp #include<bits/stdc++.h> #define int long long const int N=35; using namespace std; int n,m; int f[N][N]; signed main(){ cin>>n>>m; for(int i=1;i<=n;i++) f[i][0]=1; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int l,r; l=i-1,r=i+1; if(l==0) l=n; if(r==n+1) r=1; f[i][j]=max(f[i][j],f[l][j-1]+f[r][j-1]); } } cout<<f[n][m]; return 0; } ```
by VIOLET__FOREVER @ 2023-08-23 08:58:58


芝士我的代码,你的转移方程好像不太对 ```cpp #include<bits/stdc++.h> #define int long long using namespace std; int n,m,dp[2005][2005]; signed main() { cin>>n>>m;dp[0][1]=1; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) if(j==1)dp[i][j]=dp[i-1][n]+dp[i-1][2]; else if(j==n)dp[i][j]=dp[i-1][n-1]+dp[i-1][1]; else dp[i][j]=dp[i-1][j-1]+dp[i-1][j+1]; cout<<dp[m][1]; } ```
by lcy_123 @ 2023-08-23 10:27:11


|