一类dp的网格模型
关于形如\(f_{i,j} = \sum_{t=1}^{|w|}\sum_{k=1}^{|v|}f_{i+w_t,j+v_k}\),其中\(w_t,v_k\)为一个定值的\(dp\)转移。
可以考虑放到坐标上,画出其转移路线,然后考虑组合意义。
Section1
求\(\sum_{i,j} \binom{a_i+b_i+a_j+b_j}{a_i+a_j}\),其中\(a,b\leq 4000,n\leq 10^6\)。
\(\binom{a_i+b_i+a_j+b_j}{a_i+a_j}\)等价于从\((-a_i,-b_i)\)走到\((a_j,b_j)\)的方案数。
建图后直接从左下往右上暴力\(dp\)出解。
Section2
定义一个\(n\)的排列合法,当且仅当:设\(n\)的位置为\(x\),有:
\[p_1<p_2<p_3....<p_{x-1}<p_x>p_{x+1}>....>p_{n-1}>p_n\]
有\(m\)个限制\((pos,v)\),形如\(p_{pos} = v\),
数据范围:\(m\leq n\leq 10^5\),求合法排列数。
考虑从小往大放,设\(f_{i,j}\)表示放完\(1,2...i\),左侧放了\(j\)个。
转移方程:\(f_{i,j} =f_{i-1,j-1} +f_{i-1,j}\)。
初始在\((0,0)\)每次放一个相当于移动\((+1,0)\)或\((+1,+1)\)。
限制相当于限制\(f_{v,j}\)必须通过特定方向到达该点。
而每一列最多就两个特殊点,直接对特殊点进行\(dp\),最后一列特殊处理一下即可。
Section3
[JLOI2015]骗我呢
考虑突变的位置,设\(f_{i,j}\)表示做到第\(i\)行,该行突变位置为\(j\)。
有:\(f_{i,j} = f_{i,j-1} +f_{i-1,j+1}\),其中\(f_{i,0} = f_{i-1,0}\)。
画出转移路线,把转移路线拽直可以发现,问题转化为:
从\((0,0)\)出发,到达\((n+m,n)\),且不经过\(y=x+2\)和\(y=x-(m+1)\)的方案数u。
容斥计算。
Section4
[NOI2018]冒泡排序
设\(f_{i,j}\)表示还剩下\(i\)个要放,前面的最大值为\(j\)的方案数。
显然当前点要么放比\(j\)大的数,要么放还没放的数中最下的那个。
由于我们是逆推所以:\(f_{i,j} = f_{i-1,j} + \sum_{k=j+1}^{n} f_{i-1,k} = \sum_{k=j}^n f_{i-1,k}\)。
考虑统计答案,枚举在哪个点\(i\)开始处于自由态。
由于不会放\(a_i\),而\(a_i\leq max_{pre}\),所以一定只能放比\(max_{pre}\)大的数。
此时的方案数为\(\sum_{k=max_{pre}+1}^n f_{n-i,k} = f_{n-i+1,max_{pre}+1}\)。
唯一的问题变为如何快速处理\(f\)。
显然合法的\(f_{i,j}\)需要满足\(j\ge n-i\),画出转移路线图,问题转化为:
从\((0,n)\)出发,不经过\(y=-x+(n-1)\)到达\((i,j)\)的方案数。
这是经典问题,答案为 \(\binom{i+n-j}{i} - \binom{i+n-j}{i+1}\)。
一类dp的网格模型的更多相关文章
- pcl曲面网格模型的三种显示方式
pcl网格模型有三种可选的显示模式,分别是面片模式(surface)显示,线框图模式(wireframe)显示,点模式(point)显示.默认为面片模式进行显示.设置函数分别为: void pcl:: ...
- 使用k-means对3D网格模型进行分割
使用k-means对3D网格模型进行分割 由于一些原因,最近在做网格分割的相关工作.网格分割的方法有很多,如Easy mesh cutting.K-means.谱分割.基于SDF的分割等.根据对分割要 ...
- VTK计算网格模型上的最短路径
Dijkstra algorithm to compute the graph geodesic.Takes as input a polygonal mesh and performs a sing ...
- VTK拾取网格模型上的可见点
消隐与Z-Buffer 使用缓冲器记录物体表面在屏幕上投影所覆盖范围内的全部像素的深度值,依次访问屏幕范围内物体表面所覆盖的每一像素,用深度小(深度用z值表示,z值小表示离视点近)的像素点颜色替代深度 ...
- [ural1057][Amount of Degrees] (数位dp+进制模型)
Discription Create a code to determine the amount of integers, lying in the set [X; Y] and being a s ...
- tyvj 1062 合并傻子 区间dp,典型模型石子归并
P1062 合并傻子 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 从前有一堆傻子,钟某人要合并他们~但是,合并傻子是要掉RP的...... 描述 在一个园 ...
- 区间dp模型之括号匹配打印路径 poj(1141)
题目链接:Brackets Sequence 题目描写叙述:给出一串由'(')'' [ ' ' ] '组成的串,让你输出加入最少括号之后使得括号匹配的串. 分析:是区间dp的经典模型括号匹配.解说:h ...
- UE4编程之C++创建一个FPS工程(二)角色网格、动画、HUD、子弹类
转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的 ...
- (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(2)
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选的第二部分,其余章节将陆续放出.上一 ...
随机推荐
- 我所理解的selenium之PO设计模式
下午,花了点时间来整理UI自动化设计,就把我所理解的PO设计模式项目结构脑图整理如下,有不对的地方还望多多包涵.谢谢
- Python机器学习库SKLearn:数据集转换之管道和特征
转载自:https://blog.csdn.net/cheng9981/article/details/61918129 4.1 管道和特征:组合估计量 4.1.1 管道:链接估计 管道可以用于将多个 ...
- Cocos2dx源码赏析(3)之事件分发
Cocos2dx源码赏析(3)之事件分发 这篇,继续从源码的角度赏析下Cocos2dx引擎的另一模块事件分发处理机制.引擎的版本是3.14.同时,也是学习总结的过程,希望通过这种方式来加深对Cocos ...
- Spring Data REST PATCH请求远程代码执行漏洞(CVE-2017-8046) 本地复现方法
#1背景 Spring Data REST是Spring Data项目的一部分,可以轻松地在Spring Data存储库之上构建超媒体驱动的REST Web服务. 恶意的PATCH请求使用精心构造 ...
- 最新Python笔试题2017 涵盖知识面广泛
引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Python.下面这些问题涉及了与Python相关的许多技能,问题的关注点主要是语言本身,不是某个特定的包或模块.每一个问题都可以 ...
- 在Web Page中包含PHP代码
PHP代码可以出现在Web Page的任何位置,甚至在HTML的标签里面也可以.有4中方式在Web Page中包含PHP代码: 使用<?php ... ?>标签 <!doctype ...
- hadoop在章鱼大数据平台下的安装与配置
本次所用的软件版本: ubuntu :14.04 Hadoop:hadoop-2.6.0-cdh5.4.5 jdk:jdk-7u75-linux-x64 Hive: Hbase: 一.配置基本环境 1 ...
- 渡过OO的死劫,了解规格的意义——OO第三次博客总结
当熬过了一次次黑暗,迎接我们的却是被扣的惨不忍睹的JSF ┭┮﹏┭┮ 一.总结调研 规格的历史 传统科学的特点是发现世界,而软件的特点是构造世界.软件的最底层就是0,1,两个离散的值.程序设计语言的三 ...
- 软工1816 · Beta冲刺(1/7)
团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 完成beta冲刺阶段的任务安排 整理博客 接下来的计划 & 还剩下哪些 ...
- 软工实践-Beta 冲刺 (6/7)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...