id=19217">称号: UVA - 825Walking on the Safe Side(dp)

题目大意:给出一个n * m的矩阵。起点是1 * 1,终点是n * m。这个矩阵上有些点是不能够经过的,要求从起点到终点距离最短,而且不能走那种不能走的点。一共同拥有多少种方式。

解题思路:要求路径最短的话,每一个点要不向右走,要不向下走。dp【i】【j】 = dp【i】【j + 1】 + dp【i + 1】【j】;当这个点不能通过。dp【i】【j】 = 0;这个坑点在例子输入。不一定是规范的输入。可能两个数字之间非常多空格,或者最后一个数字和换行符之间非常多空格。

代码:

#include <cstdio>
#include <cstring> const int N = 1005; typedef long long ll; int G[N][N];
ll dp[N][N];
char str[N]; void handle () { int x, y;
bool flag = 1;
x = y = 0;
// printf ("%s\n", str);
for (int i = 0; i <= strlen (str); i++) { if (str[i] >= '0' && str[i] <= '9') { if (flag)
x = x * 10 + str[i] - '0';
else
y = y * 10 + str[i] - '0';
} else { if (!flag)
G[x][y] = 1;
// printf ("%d %d\n", x, y);
y = 0;
flag = 0;
}
}
} int main () { int t, n, m;
int x, y;
char ch;
scanf ("%d", &t);
while (t--) { scanf ("%d%d%*c", &n, &m);
memset (G, 0, sizeof (G));
for (int i = 1; i <= n; i++) { gets(str);
handle();
} for (int i = n; i >= 1; i--)
for (int j = m; j >= 1; j--) { dp[i][j] = 0;
if (G[i][j])
continue; if (i == n && j == m) {
dp[i][j] = 1;
continue;
}
if (i != n)
dp[i][j] += dp[i + 1][j];
if (j != m)
dp[i][j] += dp[i][j + 1];
} printf ("%lld\n", dp[1][1]);
if (t)
printf ("\n");
}
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

UVA - 825Walking on the Safe Side(dp)的更多相关文章

  1. UVA 10163 Storage Keepers(两次DP)

    UVA 10163 Storage Keepers(两次DP) http://uva.onlinejudge.org/index.php? option=com_onlinejudge&Ite ...

  2. uva 11584 Partitioning by Palindromes 线性dp

    // uva 11584 Partitioning by Palindromes 线性dp // // 题目意思是将一个字符串划分成尽量少的回文串 // // f[i]表示前i个字符能化成最少的回文串 ...

  3. uva 825 - Walking on the Safe Side(dp)

    题目链接:825 - Walking on the Safe Side 题目大意:给出n,m,现在给出n行数据, 每行有k(k为不定值)个数字, 第一个数字代表行数, 后面k - 1个数代表当前行的这 ...

  4. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  5. UVA - 11584 Partitioning by Palindromes[序列DP]

    UVA - 11584 Partitioning by Palindromes We say a sequence of char- acters is a palindrome if it is t ...

  6. UVA 1401 - Remember the Word(Trie+DP)

    UVA 1401 - Remember the Word [题目链接] 题意:给定一些单词.和一个长串.问这个长串拆分成已有单词,能拆分成几种方式 思路:Trie,先把单词建成Trie.然后进行dp. ...

  7. [uva 11762]Race to 1[概率DP]

    引用自:http://hi.baidu.com/aekdycoin/item/be20a91bb6cc3213e3f986d3,有改动 题意: 已知D, 每次从[1,D] 内的所有素数中选择一个Ni, ...

  8. uva live 4394 String painter 间隔dp

    // uva live 4394 String painter // // 问题是,在培训指导dp运动主题,乍一看,我以为只是一点点复杂 // A A磕磕磕,两个半小时后,.发现超过例子.然而,鉴于他 ...

  9. Uva 11077 Find the Permutations [置换群 DP]

    题意: 给定$n$和$k$,问有多少排列交换$k$次能变成升序 $n \le 21$ $uva$貌似挂掉了$vjudge$上一直排队 从某个排列到$1,2,...,n$和从$1,2,...,n$到某个 ...

随机推荐

  1. Hadoop入门经典:WordCount 分类: A1_HADOOP 2014-08-20 14:43 2514人阅读 评论(0) 收藏

    以下程序在hadoop1.2.1上测试成功. 本例先将源代码呈现,然后详细说明执行步骤,最后对源代码及执行过程进行分析. 一.源代码 package org.jediael.hadoopdemo.wo ...

  2. 在shell脚本中调用sqlplus 分类: H2_ORACLE 2013-06-23 13:01 1437人阅读 评论(0) 收藏

    #!/bin/bash sqlplus dc_file_data_js/dc_file_data_js << EOF1 set linesize 500; set pagesize 100 ...

  3. arm cpu的架构及分类说明

    今天在编译mplayer for mx27ads的时候, 碰到了armv5te与armv6优化的问题. 默认的交叉编译器支持armv5te也支持armv6,就默认使用了mplayer中mpeg4的ar ...

  4. [tmux] Reuse terminal workspaces using tmux sessions

    In this lesson, we'll learn how to detach from a running tmux session and leave it running in the ba ...

  5. 基于 Android NDK 的学习之旅-----Java 调用C

    随便谈谈为什么要Java调用C 吧: 我认为: 1.  有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所以我们没必要同样的功能又在java中实现一遍.例如我之前做的一个项目 ...

  6. ios9 xcode7以后编译需要进行的几项设置

    http://blog.csdn.net/hero82748274/article/details/48629461 1.库后缀变了:.dylib->tbd libsqlite3.0.dylib ...

  7. jdk8-collect

    toMap 常用方式 public Map<Long, String> getIdNameMap(List<Account> accounts) { return accoun ...

  8. HDU 1081 To The Max - 最大字段和

    传送门 题目大意: 求一个矩阵的最大子矩阵和. 题目分析: 刚开始考虑了一下dp方程的递推,但是不好转.简便的方法是预处理sum[i][j]表示第i行的前j个元素之和,之后\(n^3\)枚举子矩阵就可 ...

  9. hbase 2.0.2 增删改查

    package cn.hbase.demo; import java.io.IOException; import java.util.Iterator; import org.apache.hado ...

  10. 关于java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.makeAccessible

    <span style="font-size:18px;"> java.lang.NoSuchMethodError: org.springframework.util ...