题解:

挺好的一道题

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

首先考虑部分分不存在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. eclipse 包 取消代码第一行package包名 自动补全时取消自动引入包名 修改名字 取消引用 自动导入publilc static void main(String[] args) {}

    --项目 --包 包是为了管理类文件,同个包下不允许同名类文件,但不同包就可以,把类放在包里是规范 (https://zhidao.baidu.com/question/239471930532952 ...

  2. cucumber测试项目报错

    [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building th ...

  3. file 多次上传附件功能完善

    之前解决了一个页面中的单个附件上传问题,使用的是 id 定位.但是一个页面中,可能存在多个附件上传的地方,这时候如果继续使用 id,会出问题. 我依旧会上传一个附件.附件链接地址: https://f ...

  4. 如何运用jieba库分词

    使用jieba库分词 一.什么是jieba库 1.jieba库概述 jieba是优秀的中文分词第三方库,中文文本需要通过分词获得单个词语. 2.jieba库的使用:(jieba库支持3种分词模式) 通 ...

  5. 题解 P1496 【火烧赤壁】

    蒟蒻的第一篇题解,其实这道题是标准的离散化,模拟可以过,但是就没有训练效果了.我们首先先看数据,n<=20000,数据不多,但是范围大(-10^9<=Ai,Bi<=10^9),这时, ...

  6. swift 4 生成随机数的内置方法汇总

    第一种是drand48(),不接收参数, 返回的类型是Double. 就返回 0到1之间的Double类型的随机数.举个例子: //每次点击button,button 的颜色会随机变换. class ...

  7. JS中JSON和string字符串相互转换

    在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSO ...

  8. NIO学习

    1. NIO客户端与服务端网络编程关键: 理解各个监听事件的驱动事件,总结以下几点: (1)ServerSocketChannel注册了OP_ACCEPT事件,需要客户端发起连接请求,服务端selec ...

  9. 找出链表中倒数第K个结点

    思路:两个指针,也是快指针和慢指针,先让快指针走k -1步,这时慢指针开始和快指针一起走到尾部.慢指针停止的点就是倒数第k个节点. public static ListNode findCountDo ...

  10. idea如何快速查看接口的实现类

    查找接口的实现类: IDEA 风格 ctrl + alt +B 在按F2查看详细文档注解 查看类或接口的继承关系: ctrl + h