CF559C-Gerald and Giant Chess【计数类dp】

正题

上不了Codeforces,就用洛谷了
评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=CF559C


题目大意

HWH∗W的棋盘上有一个卒从(1,1)走到(H,W),有些点不能走,求方案总数。


解题思路

首先如果没有障碍走到(i,j)方案数是Ci1i+j2Ci+j−2i−1,然后我们可以枚举不可以走的点进行dp。
fifi表示走到第i个不能走的点的方案总数,然后先将所有的点坐标排序,然后动态转移方程:

fi=Cxi1xi+yi2j=0i1fjCxixjxixj+yiyjfi=Cxi+yi−2xi−1−∑j=0i−1fj∗Cxi−xj+yi−yjxi−xj


code

#include<cstdio>
#include<algorithm>
#define N 2001
using namespace std;
const int BPM=1000000007;
struct node{int x,y;
}a[N];
int h,w,n,f[N];
long long jc[200010],jcinv[200010];
long long power(long long a,int b)//快速幂
{long long c=1;while(b){if(b&1) c=c*a%BPM;a=a*a%BPM;b>>=1;}return c;
}
int C(int n,int m)//求组合数
{return jc[n]*jcinv[m]%BPM*jcinv[n-m]%BPM;
}
bool cmp(node x,node y)//坐标排序
{return x.x==y.x?x.y<y.y:x.x<y.x;
}
int main()
{jc[0]=1;jcinv[0]=1;for(int i=1;i<=200000;i++){jc[i]=jc[i-1]*i%BPM;jcinv[i]=power(jc[i],BPM-2);}//预处理求组合数scanf("%d%d%d",&h,&w,&n);for(int i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);sort(a+1,a+1+n,cmp);a[n+1].x=h;a[n+1].y=w;//结束for(int i=1;i<=n+1;i++){f[i]=C(a[i].x+a[i].y-2,a[i].x-1);for(int j=1;j<i;j++){if(a[j].x>a[i].x||a[j].y>a[i].y) continue;//不在左上角f[i]=(f[i]-(long long)f[j]*C(a[i].x+a[i].y-a[j].x-a[j].y,a[i].x-a[j].x))%BPM;//动态转移}}printf("%d",(f[n+1]+BPM)%BPM);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net Core 全局配置读取管理方法 ConfigurationManager

最近在学习.Net Core的过程中&#xff0c;发现.Net Framework中常用的ConfigurationManager在Core中竟然被干掉了。 也能理解。Core中使用的配置文件全是Json&#xff0c;不像Framework使用的XML&#xff0c;暂时不支持也是能理解的&#xff0c;但是毕竟全局配置文件这种东西还…

Http 持久连接与 HttpClient 连接池

转载自 Http 持久连接与 HttpClient 连接池 一、背景 HTTP协议是无状态的协议&#xff0c;即每一次请求都是互相独立的。因此它的最初实现是&#xff0c;每一个http请求都会打开一个tcp socket连接&#xff0c;当交互完毕后会关闭这个连接。 HTTP协议是全双工的协议&#x…

jdbc解析excel文件,批量插入数据至库中

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言现在是&#xff1a;2022年5月20日09:32:38今天遇到了个这样的需求&#xff0c;解析excel表中的数据&#xff0c;以JDBC的方式&#xff0c;将数据批量更新至不同的数据表中。注意&…

线程2

public class test{/*** 测试延迟继承* param args*/public static void main(String[] args) {Cat catnew Cat();cat.start();//启动线程&#xff0c;会导致run函数的运行Dog dognew Dog();//创建一个线程对象Thread tnew Thread(dog);t.start();}} //继承Thread创建线程 clas…

.NET及.NET Core系统架构

.NET 官方架构指南 Microservices and Docker Containers Web Applications with ASP.NET 官网地址&#xff1a;https://www.microsoft.com/net/learn/architecture 三层及多层架构 Multitier Architecture ASP.NET N-Tier Architecture Schema Visual Studio N-Tier Examp…

POJ3208-Apocalypse Someday【数位dp】

正题 题目链接:http://poj.org/problem?id3208 题目大意 求第X个有3个连续的6的数。 解题思路 用fi,j(j<3)fi,j(j<3)表示i位&#xff0c;已经有j个6的方案总数。然后fi,3fi,3表示i位的魔鬼数的总数。 然后动态转移方程。 fi,09∗(fi−1,0fi−1,1fi−1,2)fi,09∗(fi…

Spring Boot 自动配置的 “魔法” 是如何实现的?

转载自 Spring Boot 自动配置的 “魔法” 是如何实现的&#xff1f; Spring Boot是Spring旗下众多的子项目之一&#xff0c;其理念是约定优于配置&#xff0c;它通过实现了自动配置&#xff08;大多数用户平时习惯设置的配置作为默认配置&#xff09;的功能来为用户快速构建出…

for循环(一)

利用for循环打出一百句HelloWorld #include<stdio.h>main(){int i;for(i0;i<100;i){printf("HelloWorld\n");} } ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190324224126588.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,sha…

解决vue登录信息不及时更新问题

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是&#xff1a;2022年5月20日09:59:34 前面写过一篇文章&#xff0c;基于bladex框架实现的模拟登录&#xff0c;后来在测试的过程中发现了个问题&#xff0c;即A系统在跳转到本系…

学习ASP.NET Core,怎能不了解请求处理管道[2]: 服务器在管道中的“龙头”地位

ASP.NET Core管道由注册的服务器和一系列中间件构成。我们在上一篇中深入剖析了中间件&#xff0c;现在我们来了解一下服务器。服务器是ASP .NET Core管道的第一个节点&#xff0c;它负责完整请求的监听和接收&#xff0c;最终对请求的响应同样也由它完成。[本文已经同步到《AS…

Ch3101-阶乘分解【数论,质因数分解】

正题 题目链接:http://contest-hunter.org:83/contest/0x30%E3%80%8C%E6%95%B0%E5%AD%A6%E7%9F%A5%E8%AF%86%E3%80%8D%E4%BE%8B%E9%A2%98/3101%20%E9%98%B6%E4%B9%98%E5%88%86%E8%A7%A3 题目大意 质因数分解n!n!的阶乘。 解题思路 很简单的数学题&#xff0c;将1∼n1∼n全部…

for循环(二)

利用for循环按规律打出星星 #include<stdio.h>main(){int i,j;for(i0;i<10;i){for(j0;j<i;j){printf(" *"); }printf("\n");} }

接口方法上的注解无法被@Aspect声明的切面拦截的原因分析

转载自 接口方法上的注解无法被Aspect声明的切面拦截的原因分析 前言 在Spring中使用MyBatis的Mapper接口自动生成时&#xff0c;用一个自定义的注解标记在Mapper接口的方法中&#xff0c;再利用Aspect定义一个切面&#xff0c;拦截这个注解以记录日志或者执行时长。但是惊奇…

springboot实现用户统一认证、管理(单点登录)

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是&#xff1a;2022年5月25日13:44:16 最近和模拟登录杠上了&#xff0c;这不&#xff0c;又来了个需求&#xff0c;还是以这个技术点入手的。 需求大概是这样的&#xff1a;为了…

学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

ASP.NET Core管道虽然在结构组成上显得非常简单&#xff0c;但是在具体实现上却涉及到太多的对象&#xff0c;所以我们在 “通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程”&#xff08;上篇、中篇、下篇&#xff09; 中围绕着一个经过极度简化的模拟管道讲述…

POJ2689-Prime Distance【质数,数论】

正题 题目链接:http://poj.org/problem?id2689 题目大意 求闭区间[L,R][L,R]中相邻的最远和最近的两个质数。 解题思路 我们可以用前R−−√个质因子筛这个区间内的质数R个质因子筛这个区间内的质数解题思路 #include<cstdio> #include<algorithm> #include&l…

for循环(三)

利用for循环打出乘法口诀表 #include<stdio.h>main(){int i,j,k;for(i1;i<10;i){for(j1;j<i1;j){printf("%d*%d%d\t",i,j,ki*j); }printf("\n");} } ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190324224732816.png?x-oss-proce…

springboot实现用户统一认证、管理

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言现在是&#xff1a;2022年5月25日13:44:16最近和模拟登录杠上了&#xff0c;这不&#xff0c;又来了个需求&#xff0c;还是以这个技术点入手的。需求大概是这样的&#xff1a;为了统…

Mybatis 使用的 9 种设计模式,真是太有用了

转载自 Mybatis 使用的 9 种设计模式&#xff0c;真是太有用了 虽然我们都知道有26个设计模式&#xff0c;但是大多停留在概念层面&#xff0c;真实开发中很少遇到&#xff0c;Mybatis源码中使用了大量的设计模式&#xff0c;阅读源码并观察设计模式在其中的应用&#xff0c;…

P1463-[POI2002][HAOI2007]反素数【约数,数论】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP1463 题目大意 求1∼n1∼n中最大的一个约数个数比前面的所有数都要多的数。 解题思路 首先根据数据我们可以得知这个数的质因子不超过10个。而且这个数的质因子是连续若干个最小的质数&#xff0c;而…