Uva-825 Walking on the Safe Side 水DP

来源:互联网 发布:数据分析师待遇 编辑:程序博客网 时间:2024/05/02 01:45

题目链接

简单DP就输入比较麻烦点 

#include<stdio.h>#include<iostream>#include<string>#include<string.h>#include<math.h>#include<functional>#include<algorithm>#include<vector>#include<queue>using namespace std;const int maxn = 1030;const int inf = 1<<30;int n,m;int dp[maxn][maxn],vis[maxn][maxn];void GetDp(){dp[1][1] = 1;for( int i = 1; i <= n; i ++ ){for( int j = 1; j <= m; j ++ ){if( i == j && i == 1 )continue;if( vis[i][j] != -1 )dp[i][j] = dp[i-1][j] + dp[i][j-1];}}}int main() {#ifndef ONLINE_JUDGE    freopen("data.txt","r",stdin);#endifchar ch;int cas,x,y;scanf("%d",&cas);while( cas -- ){scanf("%d%d",&n,&m);memset(dp,0,sizeof(dp));memset(vis,0,sizeof(vis));for( int i = 1; i <= n; i ++ ){scanf("%d",&x);y = 0;ch = getchar();while( ch != '\n' && ch != -1 ){ch = getchar();if( ch == ' ' || ch == '\n' ){vis[x][y] = -1;y = 0;}else if( ch >= '0' && ch <= '9' )y = y*10 + ch-'0';}}GetDp();printf("%d\n",dp[n][m]);if( cas )puts("");}    return 0;}


0 0