Time Limit: 1 second

Memory Limit: 128 MB

【问题描述】

一个N×N的网格,你一开始在(1, 1),即左上角。每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N, N),即右下角有多少种方法。 但是这个问题太简单了,所以现在有M个格子上有障碍,即不能走到这M个格子上。

【输入格式】

输入文件path.in的第1行包含两个非负整数N,M,表示了网格的边长与障碍数。 接下来M行,每行两个不大于N的正整数x, y。表示坐标(x, y)上有障碍不能通过,且有1≤x, y≤n,且x, y至少有一个大于1,并请注意障碍坐标有可能相同。

【输出格式】

输出文件path.out仅包含一个非负整数,为答案mod 100003后的结果。

【数据规模】

对于20%的数据,有N≤3; 对于40%的数据,有N≤100; 对于40%的数据,有M=0; 对于100%的数据,有N≤1000,M≤100000。

Sample Input1

3 1
3 1

Sample Output1

5

【题解】

这题和马拦过河卒那题很像。

但是这题更好做了。不用你处理出马控制的区域。直接告诉你哪些格子不能走了。

一开始和(1,1)在同一行和同一列的位置都置为1;遇到不能走的则停止置。

然后用递推公式

a[i][j] = (a[i-1][j]+a[i][j-1] )%100003递推即可。

【代码】

#include <cstdio>
#include <cstring> int n,m,a[1001][1001] = {0};
bool bo[1001][1001]; void input_data()
{
memset(bo,true,sizeof(bo));//一开始置所有的点都可以走
scanf("%d%d",&n,&m);
for (int i = 1;i <= m;i++) //输入m个不能走的点 并将其bo值置为false;
{
int x,y;
scanf("%d%d",&x,&y);
bo[x][y] = false;
}
for (int i = 1;i <= n;i++) //和(1,1)在同一行或同一列都只有一种到达方式。如果有不能走到的点
if (bo[1][i])//在这一行或一列上。它后面被挡住的点就无法到达了。
a[1][i] = 1;
else
break;
for (int i = 1;i <= n;i++)
if (bo[i][1])
a[i][1] = 1;
else
break;
} void get_ans() //根据过河卒的思路来递推答案即可。
{
for (int i = 2;i <= n;i++)
for (int j = 2;j <= n;j++)
if (bo[i][j])
a[i][j] = (a[i-1][j]+a[i][j-1]) % 100003; //要记住取模运算!
} void output_ans()
{
printf("%d\n",a[n][n]);
} int main()
{
input_data();
get_ans();
output_ans();
return 0;
}

【u105】路径计数2的更多相关文章

  1. 51 nod 1610 路径计数(Moblus+dp)

    1610 路径计数 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   路径上所有边权的最大公约数定义为一条路径的值. 给定一个有向无环图.T次修改操作,每次修改一 ...

  2. 蓝桥杯 历届试题 网络寻路(dfs搜索合法路径计数)

    X 国的一个网络使用若干条线路连接若干个节点.节点间的通信是双向的.某重要数据包,为了安全起见,必须恰好被转发两次到达目的地.该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径 ...

  3. 堆优化Dijkstra计算最短路+路径计数

    今天考试的时候遇到了一道题需要路径计数,然而蒟蒻从来没有做过,所以在考场上真的一脸懵逼.然后出题人NaVi_Awson说明天考试还会卡SPFA,吓得我赶紧又来学一波堆优化的Dijkstra(之前只会S ...

  4. 【洛谷】P1176: 路径计数2【递推】

    P1176 路径计数2 题目描述 一个N×N的网格,你一开始在(1,1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N,N),即右下角有多少种方法. 但是这个问题太简单了,所以 ...

  5. 牛客网 暑期ACM多校训练营(第一场)A.Monotonic Matrix-矩阵转化为格子路径的非降路径计数,Lindström-Gessel-Viennot引理-组合数学

    牛客网暑期ACM多校训练营(第一场) A.Monotonic Matrix 这个题就是给你一个n*m的矩阵,往里面填{0,1,2}这三种数,要求是Ai,j⩽Ai+1,j,Ai,j⩽Ai,j+1 ,问你 ...

  6. 洛谷——P1176 路径计数2

    P1176 路径计数2 题目描述 一个N \times NN×N的网格,你一开始在(1,1)(1,1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N,N)(N,N),即右下角有 ...

  7. 洛谷 P1176 路径计数2

    P1176 路径计数2 题目描述 一个N×N的网格,你一开始在(1, 1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N, N),即右下角有多少种方法. 但是这个问题太简单了, ...

  8. 【51nod】1776 路径计数

    [51nod]1776 路径计数 我们先把前两种数给排好,排好之后会有\(a + b + 1\)个空隙可以填数,我们计算有\(k\)个空隙两端都是相同字母的方案数 可以用枚举把第二种数分成几段插进去来 ...

  9. HDU 6116 路径计数

    HDU 6116 路径计数 普通生成函数常用于处理组合问题,指数生成函数常用于处理排列问题. 考虑 对于 $ a $ 个 $ A $ 分为很多堆,这么分的方案数是 $ C_{a-1}^{i-1} $ ...

随机推荐

  1. MAC使用技巧之苹果电脑抓图截屏方法

    用苹果电脑自带的截图功能的快捷键:command+shift+3 三个键按下则抓取/截取全屏 command+shift+4 然后用鼠标框选则抓取该区域的截图 command+shift+4 然后按空 ...

  2. Spring_Bean的作用域---和使用外部属性文件

    <!-- 使用 bean的scope属性来配置bean的作用域 singleton:默认值.容器初始时创建bean实例,在整个容器的生命周期内只创建这一个bean单例 prototype:原型的 ...

  3. Windows 配置 Aria2 及 Web 管理面板教程

    今天闲来没事,想找点东西折腾下,然后看到个在 Debian 7 x64 系统环境下配置 Aria2 和 Web 管理面板的教程,针对 Linux 服务器用的.但很多人没服务器,也不知道什么是 Aria ...

  4. python 常见包中的不定参数

  5. 设置PHP最长运行时间

    通常来说,默认的PHP程序最大运行时间是30s,如果你的程序运行超过这个时间限制,那么会有类似Maximum execution time of 30 seconds exceeded的报错. 有几种 ...

  6. Java面向对象----方法重载

    方法重载(over load):方法名相同,参数列表不同,返回类型无关 package com.tanlei.newer; public class OverLoadDemo { public sta ...

  7. [React Native]高度自增长的TextInput组件

    之前我们学习了从零学React Native之11 TextInput了解了TextInput相关的属性. 在开发中,我们有时候有这样的需求, 希望输入区域的高度随着输入内容的长度而增长, 如下: 这 ...

  8. Java练习 SDUT-1586_计算组合数

    计算组合数 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 计算组合数.C(n,m),表示从n个数中选择m个的组合数. ...

  9. hihocoder1994 树与落叶 DFS+前缀和+二分

    DFS找到节点删除的时间,删除的时间其实就是子树的最长链,然后给每个点打一个时间戳,然后求每个时间点对应删除的节点的个数,对于1-max_time时间戳求一个前缀和,然后二分找到和m距离最近的那一天 ...

  10. Android教程 -06 Activity的生命周期

    本篇播客我们重点介绍下如下知识点: 程序启动原理 Activity生命周期 Activity销毁与创建 视频建议采用超清模式观看, 欢迎点击订阅我的优酷 程序启动原理 当用户从主界面点击程序图标时,系 ...