【BZOJ 3907】【JZOJ 3431】网格

BZOJ系列3907《网格》题解 Description 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。 Input 输入文件中仅有一行,包含两个整数n和m,表示城市街 阅读详情

Description

某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。
这里写图片描述

Solution

之前做过一道几乎一样的题;

首先不考虑中间那条y=x的线,答案很显然就是Cmn+m,
因为我们是可以走到那条直线上的,很恶心,所以我们就把它往上移一个单位,现在就不能碰到它了,只能在它下面走动,
能我们只要用原答案减去越界的答案即可,
新建点B是以点(n,m)以直线y=x+1为对称轴的对称点,因为从原点到这个点一定是要经过直线y=x+1的,而我们把一些路径沿着直线对称过去后依旧可以到达点(n,m),所以所有从原点到点(n,m)的所有不合法的路径个数就是从原点到点B的路径个数(懒得上图,大家凑合着理解吧),
这题要用高精度,把C公式的上下分解质因数以后约分即可,

Code

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define cq c[q]
#define cw c[w]
#define c0 c[0]
#define c3 c[3]
#define read(a) scanf("%d",&a)
using namespace std;
typedef long long LL;
const int N=5500,maxlongint=2147483640,mo=10,mo1=1;
int m,n,ans;
int b[N*2];
int c[4][N];
void fen(int q,int e)
{fo(i,2,sqrt(q))while(q%i==0)b[i]+=e,q/=i;if(q!=1)b[q]+=e;}
void chen(int q,int w,int e)
{
    fo(i,1,c0[0])c0[i]=0;
    c0[0]=cq[0]+cw[0]-1;
    fo(i,1,cq[0])
        fo(j,1,cw[0])
        {
            c0[i+j-1]+=cw[j]*cq[i];
            c0[i+j]+=c0[i+j-1]/mo;
            c0[i+j-1]%=mo;
        }
    while(c0[c0[0]+1])
    {
        c0[0]++;
        c0[c0[0]+1]+=c0[c0[0]]/mo;
        c0[c0[0]]%=mo;
    }
    fo(i,0,c0[0])c[e][i]=c0[i];
}
void ksm(int q,int w)
{
    c3[0]=0;c[2][0]=c[2][1]=1;
    while(q)c3[++c3[0]]=q%mo,q/=mo;
    while(w)
    {
        if(w%2)chen(2,3,2);
        chen(3,3,3);
        w/=2;
    }
}
int main()
{
    int q,w;
    read(n),read(m);
    if(!n){printf("1\n");return 0;}
    n+=m;
    fen(n-2*m+1,1);
    fo(i,m+1,n)fen(i,1);
    fo(i,2,n-m+1)fen(i,-1);
    c[1][0]=c[1][1]=1;
    fo(i,1,n)if(b[i])
    {
         ksm(i,b[i]);
         chen(1,2,1);
    }
    fod(i,c[1][0],1)printf("%d",c[1][i]);
    return 0;
}
【GDOI2014模拟】网格 题解+代码 Description某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。 Input输入文件中仅有一行,包含两个整数n和m,表示城市街区的规模。Output输出 阅读详情

相关推荐

组合数学——网格

网格 某城市的街道呈网格状,左下角坐标为 A(0,0),右上角坐标为 B(n,m),其中 n≥m。 现在从 A(0,0) 点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点 (x,y) 都要满足 x≤y,请问在这些前提下,到达 B(n,m) 有多少种走法。 输入格式 仅有一行,包含两个整数 n 和 m,表示城市街区的规模。 输出格式 输出一个整数,表示不同...

行走天涯的豆沙包的博客 2002

【GDOI2014模拟】网格

Description某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。 分析首先,我们知道:如果现在从(0, 0)点出发,只能沿着街道向正右方或者正上方行走时

dudingxun的博客 495

实战复盘:如何用Frida脚本绕过某书APP的libmsaoaidsec.so检测(附完整Hook代码)

本文深入探讨了如何利用Frida脚本绕过某书APP通过libmsaoaidsec.so实现的反Frida检测机制。通过分析动态链接过程中的关键节点和检测模式,提供了两种实战验证的绕过方案:动态Hook关键链接器函数和静态Patch SO文件。文章还分享了进阶对抗策略和调试技巧,帮助安全研究人员有效应对现代移动安全防护挑战。

weixin_42706667的博客 218

【BZOJ】【3907】网格

组合数学/python 3907: 网格 Time Limit: 1 SecMemory Limit: 256 MBSubmit: 162Solved: 76[Submit][Status][Discuss] Description 某 城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能...

weixin_30263277的博客 277

8.5/Q1,Charls最新高分文章解读!

8 257名受试者中,672人(8.14%)在9年内发生过卒中。在调整的多因素cox回归模型中,TyG和ABSI仍然是卒中的预测因素,TyG的HR为1.25(95%CI:1.06~1.47),ABSI的HR为1.33(95%CI:1.06~1.68)。TyG和ABSI联合诊断效能最高(AUC:0.579,95%CI:0.553~0.597),而TyG(AUC:0.566,95%CI:0.544~0.587)和ABSI(AUC:0.533,95%CI:0.524~0.597)的诊断效能最低。

gsky_sci的博客 1015

LabVIEW通过ActiveX控件实现与三菱FX5U PLC的高效数据交互

本文详细介绍了如何利用LabVIEW的ActiveX控件,通过三菱官方MX Component工具包实现与FX5U PLC的高效数据交互。文章从环境配置、控件插入到实战代码解析,系统讲解了连接建立、数据读写及资源释放的全流程,并提供了关键的避坑指南,帮助工程师快速构建稳定可靠的上位机通讯系统。

weixin_29197051的博客 373

[组合数][高精度] Jzoj P3431 网络

Description 某城市的街道呈网格状,左下角坐标为A(0,0),右上角坐标为B(n,m),其中n>=m。现在从A(0,0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x,y)都要满足x>=y,请问在这些前提下,到达B(n,m)有多少种走法。 题解 从(0,0)到(n,m)...

weixin_30594001的博客 184

智能车图像处理1-基础图像规格

从厂家摄像头的库函数中,我们可以直接得到完整图像的灰度数组,经过二值化之后(算力允许,可以考虑大津法),就是我们要处理的0-1二值图像了。本系列所有的文章中,我们的图像规格如下。

taiyuezyh的博客 4327

3431. 【GDOI2014模拟】网格

Description 某城市的街道呈网格状,左下角坐标为A(0,0),右上角坐标为B(n,m),其中n>=m。现在从A(0,0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x,y)都要满足x>=y,请问在这些前提下,到达B(n,m)有多少种走法。 Input 输入文件中仅有一行,包含两个整数n和m,表示城市街区的规模。 Output 输出文件中仅有一个整数和一个换行/回车符,表示不同的方案总数。 Sample Inp...

zsjzliziyang的博客 480

【skill】漫剧 AI 视频创作的知识库 + API 调用手册

方案适用场景在对话中使用,自动触发注入到任何 LLM(Cursor/Windsurf/Claude API)Python 模块集成到自动化管线/批量生成GitHub 又限速了,不过前几轮搜到的已经够用了。根据搜索结果,结合已分析过的项目,给你整理完整对比 🐮。

突围 984

液滴碰撞壁面的过程背景论文——bouncing反弹,spreading扩展,splashing飞溅。铺展过程介绍。还存在很多未解之谜。

【1993-德国-Phenomena of liquid drop impact on solid and liquid surfaces】液滴碰撞壁面的过程背景——bouncing反弹,spreading扩展,splashing飞溅。还存在很多未解之谜。还存在很多未解之谜。不同液滴形状碰撞过程。

qq_15963745的博客 199

[BZOJ 3907] [JZOJ 3431] 网格

Description 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。 100%的数据中,1 <= m <= n <= 5 000Analysis因为我是蒟蒻

LYD729 1031

大厂硬件机试选择题与判断题解析-卷1

本文精选30道硬件工程师机试题目,涵盖模拟电路、数字电路、PCB设计三大方向。模拟电路部分重点考察运算放大器、滤波器、整流电路等核心知识;数字电路部分聚焦计数器、电平转换等关键技术;PCB设计部分强调高速信号处理、阻抗控制等实践要点。题目均来自华为、小米等大厂真题,剔除基础题,每道题附详细解析,包括正确答案推导过程及相关公式说明。特别针对易错概念(如负反馈类型判断、Q值与带宽关系等)进行重点解析,帮助考生系统掌握硬件设计的核心考点和解题思路。

启芯硬件的博客 678

Bzoj 3907: 网格

Bzoj 3907: 网格 推一下$C_{2n}^n-C_{2n}^{n-1}$这个公式。 当n=m时 ,从黑格子左下角到右上角的方案数(不保证合法)为$C_{2n}^{n}$,相当于有2n个位置,其中选出n个向右,另外n个向上。 然后看不合法的方案。不合法则肯定经过了黄线,从第一次到达黄线开始,以后的路径沿黄线反转,那么不合法的方案数就是从黑格子左下角到蓝格子右上角的方案数 $C_{2n...

weixin_30763397的博客 239

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

卡特兰数 - 网格 - AcWing 1315

卡特兰数 - 网格 - AcWing 1315 某城市的街道呈网格状,左下角坐标为 A(0,0),右上角坐标为 B(n,m),其中 n≥m。 现在从 A(0,0) 点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点 (x,y) 都要满足 x≥y,请问在这些前提下,到达 B(n,m) 有多少种走法。 输入格式 仅有一行,包含两个整数 n 和 m,表示城市街区的规模。 输出格式 输出一个整数,表示不同的方案总数。 数据范围 1≤m≤n≤50001≤m≤n≤50001≤m

njuptACMcxk的博客 711

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

BZOJ3907

题解是粘的 代码也是粘的转自这里(0,0)->(n,m)方案数为C(n,n+m), 然后减去不合法的方案. 作(n,m)关于y=x+1的对称点(m-1,n+1), 则(0,0)->(m-1,n+1)的任意一条路径都对应(0,0)->(n,m)的一条不合法路径(y>x). 所以答案就是C(n,n+m) - C(n+1,n+m).高精度算就OK了#include<cstring> #include<al

Devil_Gary的博客 1077

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

1315 网格(卡特兰数,分解质因数)

1. 问题描述: 2. 思路分析: 3. 代码如下: from typing import List class Solution: # 使用全局的l记录当前高精度乘法的最大位数 count = l = 0 # 线性筛法求解1~n之间的质数, 方便后面分解质因数 def init(self, n: int, primes: List[int], st: List[int]): for i in range(2, n):

二哈 647

【BZOJ3907】网格 组合数,补集转换

题解:      ~~~~~ 首先从 (0,0)(0,0) 到 (n,m)(n,m) 是右走 nn 步, 上走 mm 步。方案数是在 nn 个数中 n+1n+1 个空中插 mm 个数,组合数是Cmn+mC_{n+m}^m。      ~~~~~ 然后从中减去穿过 y=xy = x 这条线的那些方案数就好了。      ~~~~~ 但是这个很难求,而若要求 [ 不经过 ] 则就可以有特别的技

辗转山河弋流歌 2265

网格 [Bzoj 3907]

网格

Leo的博客 875

BZOJ3907 网格 卡特兰数

题目描述 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。 现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y, 请问在这些前提下,到达B(n, m)有多少种走法。 输入格式 仅有一行,包含两个整数 n 和...

weixin_30808253的博客 327

JZOJ.3431【GDOI2014模拟】网格 解题报告

网格题目描述某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。 样例输入6 35 3样例输出13228数据范围50%的数据中,n = m,在另外的50%数据中,

XianHaoMing的博客 2849

JZOJ6024. 【GDOI2019模拟2019.2.16】网格

Description 多组数据,1&lt;=n,T&lt;=5e5 Solution 通过找规律 我们发现我们可以将答案分为左上到右下,右上到左下两种吗,并且既不重复,也不遗漏。 例如: 1100000 1100000 0010000 0001110 0001110 0001110 0000001 这个状态,最后必然合法。对于这个左上到右下的状态里面的每一个1构成的正方形,又分别是一个右上到...

Deep_Thinking的博客 420

A - Sonya and Hotels-coordinate(坐标)

A - Sonya and Hotels  CodeForces - 1004A : 题意:新建酒店不能再两个原来酒店的范围内, #include&lt;bits/stdc++.h&gt; using namespace std; #define maxn 105 int a[maxn]; int main() { int n,d,ans=2; cin&gt;&gt;n&gt...

BePosit的博客 263
上一篇: 【BZOJ 3754】【JZOJ 3410]】Tree之最小方差树 -
下一篇: 【JZOJ 3432】【OnlineJudge 1061】小M的服务器(含斜率优化解释)
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值