yuri01 题解分享 · 2025/1/18
走方格(编程题) - 题解
```cpp // https://dashoj.com/d/lqbproblem/p/100 #include <bits/stdc++.h> #define N 50 using namespace std; int n, m, ans = 0; vector<vector<int>> g(N, vector<int>(N, 0)); int main() { cin >> n >> m; g[1][1] = 1; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { if (i == 1 && j == 1) continue; if (i % 2 || j % 2) g[i][j] = g[i - 1][j] + g[i][j - 1]; } cout << g[n][m] << endl; return 0; } ```
查看全文
0 0 1 0
yolooff 题解分享 · 2024/4/11
走方格(编程题) - 题解
``` import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int [][]dp = new int[n][m]; for(int i = 0; i < n; i++) { dp[i][0] = 1; } for(int i = 0; i < m; i++) { dp[0][i] = 1; } for(int i = 1; i < n; i++) { for(int j = 1; j < m; j++) { if((i+1) % 2 != 0 || (j+1) % 2 != 0) { dp[i][j] = dp[i][j-1] + dp[i-1][j]; } } } System.out.println(dp[n-1][m-1]); } } ```
查看全文
0 0 0 1
星河漫步vphyc 题解分享 · 2025/3/30
走方格(编程题) - 题解
``` #include <bits/stdc++.h> using namespace std; const int N=1010; int n,m; int g[N][N],mem[N][N]; int dx[]={1,0}; int dy[]={0,1}; int dfs(int x,int y){ if(mem[x][y]) return mem[x][y]; if(x==1&&y==1) return 1; int sum=0; if(g[x-1][y]) sum+=dfs(x-1,y); if(g[x][y-1]) sum+=dfs(x,y-1); return mem[x][y]=sum; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(i%2||j%2){ //1可以走,0不可以走 g[i][j]=1; } } } if(n%2==0&&m%2==0) cout<<"0"<<endl; else cout<<dfs(n,m)<<endl; return 0; } ```
查看全文
0 0 0 0