水了60分(真的是水

P1434 [SHOI2002] 滑雪

so?
by zym0325 @ 2023-07-24 17:05:32


so?
by ran_qwq @ 2023-07-24 17:09:27


so?
by w9095 @ 2023-07-24 17:14:33


so?
by __My0217__ @ 2023-07-24 17:17:47


emmmm。。。。So 我用记忆化搜索做了一遍
by Inferior_dust @ 2023-07-24 20:18:56


但是我有两个点wa了 ``` #include <bits/stdc++.h> using namespace std ; int key = 1 ; int n , m ; int MAXX = -1 ; int a[101000][110] ; int f[101000][110] ; int lsp ( int x , int y ) { if ( x > n || y > m || x < 1 || y < 1 ) return 0 ; if ( f[x][y] ) return f[x][y] ; f[x][y] = 1 ; int o1 = 0 , o2 = 0 , o3 = 0 , o4 = 0 ; if ( y - 1 > 0 && a[x][y] > a[x][y - 1] ){ lsp ( x , y - 1 ) ; o1 = max ( f[x][y] , f[x][y - 1] + 1 ) ; } if ( y + 1 <= m && a[x][y] > a[x][y + 1] ){ lsp ( x , y + 1 ) ; o2 = max ( f[x][y] , f[x][y + 1] + 1 ) ; } if ( x - 1 > 0 && a[x][y] > a[x - 1][y] ) { lsp ( x - 1 , y ) ; o3 = max ( f[x][y] , f[x - 1][y] + 1 ) ; } if ( x + 1 <= n && a[x][y] > a[x + 1][y] ) { lsp ( x + 1 , y ) ; o4 = max ( f[x][y] , f[x + 1][y] + 1 ) ; } int res = max ( max ( o1 , o2 ) , max ( o3 , o4 ) ) ; f[x][y] = res ; return f[x][y] ; } int main ( ) { ios::sync_with_stdio(0) ; memset ( a , 0 , sizeof ( a ) ) ; cin >> n >> m ; for ( int i = 1 ; i <= n ; i ++ ) { for ( int j = 1 ; j <= m ; j ++ ) { cin >> a[i][j] ; } } for ( int i = 1 ; i <= n ; i ++ ) { for ( int j = 1 ; j <= m ; j ++ ) { key = max ( key , lsp ( i , j ) ) ; } } printf ( "%d\n" , key + 1 ) ; return 0 ; } /* 5 5 1 4 3 4 7 2 3 4 5 7 3 4 6 5 4 5 6 8 4 3 1 7 7 8 4 */ ```
by Inferior_dust @ 2023-07-24 20:27:47


|