题解:

挺好的一道题

两次容斥+一次二项式反演

首先考虑部分分不存在k的限制

然后我们发现两维之间是互相独立的

下面以x轴为例

然后问题就变成了

$$\sum\limits_{i=1}^{R} {xi}=k (xi<=Mx)$$

这个东西是个经典问题,容斥做就可以了

$$h(R)=\sum\limits_{i=0}^{R}{{(-1)}^{i}*C_R^i *p(i)}$$

$$p(x)= C_{Tx-(Mx+1)*x+R-1}^{R-1}$$

但是这样还不对,因为走$(0,0)$是不合法的

所以我们求出来的$h(R)$是至多走了$R$步的方案数

令$g(x)$表示正好走了$x$步$(0,0)$的方案数

$$h(R)=\sum\limits_{i=0}^{R} { C_R^i *g(i) }$$

由这个可以二项式反演得出$g(R)$

$$g(R)=\sum\limits_{i=0}^{R} { {(-1)}^{R-i} * C_R^i *h(i) }$$

这个复杂度是$O(R*MIN(R,Tx/Mx))$的

现在加入了k个不能走的限制

显然我们需要继续容斥

因为都是$g$的倍数所以可以$/g$后进行

$dp[i][j]$表示选出$i$个和为$j$的方案数

$$ans=\sum\limits_{i=0}^{n} { {(-1)}^{i} \sum\limits_{j=0}^{100} {dp[i][j]* C_R^i *calc(Tx-j*G,R-i)} }$$

时间复杂度的话

注意到因为$g>=1e4$,所以$Mx$也要$>=1e4$

那么复杂度就是$O(50*(1e6/1e4)*(1e6/1e4)*1e3)$

并且这个很显然是不满的

LOJ#6374 网格的更多相关文章

  1. 【LOJ#6374】网格(二项式反演,容斥)

    [LOJ#6374]网格(二项式反演,容斥) 题面 LOJ 要从\((0,0)\)走到\((T_x,T_y)\),每次走的都是一个向量\((x,y)\),要求\(0\le x\le M_x,0\le ...

  2. LOJ #6374「SDWC2018 Day1」网格

    模拟赛考过的题 当时太菜了现在也一样只拿到了$ 30$分 回来填个坑 LOJ #6374 题意 你要从$ (0,0)$走到$ (T_x,T_y)$,每次移动的坐标增量满足$ 0 \leq \Delta ...

  3. LOJ 546: 「LibreOJ β Round #7」网格图

    题目传送门:LOJ #546. 题意简述: 题目说的很清楚了. 题解: 将不包含起点或障碍物的连续的行或列缩成一行或一列,不会影响答案. 处理过后,新的网格图的行数和列数最多为 \(2k + 3\). ...

  4. LOJ#2084. 「NOI2016」网格

    $n,m \leq 1e9$,$n*m$的网格中有$c \leq 1e5$个是黑的,其他是白的.问:使至少两个白的不连通,最少需要再把几个白的涂黑. 可以发现答案是-1,0,1,2啦.-1要么没白的, ...

  5. 【LOJ】#2084. 「NOI2016」网格

    题解 之前用的mapTLE了,今天用了个hash把题卡了过去,AC数++ 我们只要保留一个点为中心周围5 * 5个格子就可以 如果一个点周围5*5个格子有两个不连通,那么显然输出0 如果一个出现了一个 ...

  6. Loj #2321. 「清华集训 2017」无限之环

    Loj #2321. 「清华集训 2017」无限之环 曾经有一款流行的游戏,叫做 *Infinity Loop***,先来简单的介绍一下这个游戏: 游戏在一个 \(n \times m\) 的网格状棋 ...

  7. loj 3090 「BJOI2019」勘破神机 - 数学

    题目传送门 传送门 题目大意 设$F_{n}$表示用$1\times 2$的骨牌填$2\times n$的网格的方案数,设$G_{n}$$表示用$1\times 2$的骨牌填$3\times n$的网 ...

  8. [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞

    [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞 试题描述 到河北省 见斯大林 / 在月光下 你的背影 / 让我们一起跳舞吧 うそだよ~ 河北省怎么可能有 Stalin. ...

  9. Loj #2719. 「NOI2018」冒泡排序

    Loj #2719. 「NOI2018」冒泡排序 题目描述 最近,小 S 对冒泡排序产生了浓厚的兴趣.为了问题简单,小 S 只研究对 *\(1\) 到 \(n\) 的排列*的冒泡排序. 下面是对冒泡排 ...

随机推荐

  1. 【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例

    #用法说明 select row_number() over(partition by A order by B ) as rowIndex from table A :为分组字段 B:为分组后的排序 ...

  2. 03--STL序列容器(Deque)

    一:Deque双端队列<头尾操作> stack和queue是在Deque的基础上改进的,所以先介绍双端队列Deque     deque是“double-ended queue”的缩写,和 ...

  3. ArcGis使用字段别名Alias Name导出Excel

    在ArcMap10.3+(根据官网描述应该是,作者测试使用10.5,可行)以后的版本,可以使用ArcToolbox工具导出Excel. 工具位置ConversionTools——Excel——Tabl ...

  4. 六十、linux 编程—— I/O 多路复用 select

    60.1 介绍 60.2 例子 echo_tcp_server_select.c #include <netdb.h> #include <netinet/in.h> #inc ...

  5. 《C#手札》--基础知识

    第一记 C#基本语法: 语言分隔符: 分号 (;) :语句的分割,表示一句话结束: 花括号 ({}):表示一个代码号,是一个整体,花括号要成对使用: 方括号 ([]): 定义数组和访问数组元素时使用: ...

  6. Fastjson反序列化漏洞研究

    0x01 Brief Description java处理JSON数据有三个比较流行的类库,gson(google维护).jackson.以及今天的主角fastjson,fastjson是阿里巴巴一个 ...

  7. java项目部署常用linux命令

    1.显示当前所有java进程pid的命令:jps2.查找文件或文件夹目录查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查 ...

  8. 【转】Java中的新生代、老年代、永久代和各种GC

    JVM中的堆,一般分为三大部分:新生代.老年代.永久代: 1 新生代 主要是用来存放新生的对象.一般占据堆的1/3空间.由于频繁创建对象,所以新生代会频繁触发MinorGC进行垃圾回收. 新生代又分为 ...

  9. adb devices 找不到设备

    问题如图: 解决方法: 1.在开发人员选项中,找到USB调试,打开USB调试 2.如果还不行,下载360手机助手,连接手机,会自动安装驱动 3.再次adb devices,OK

  10. dubbo注册中心

    官方推荐的是zookeeper注册中心. 1.Multicast 注册中心 Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现. 提供方启动时广播自己的地址消费方启动 ...