DP-直线分割递推
在 DP 里有一类是直线分割平面的问题 , 也是属于递推 类的 。
一 . 直线分割平面的问题
先考虑第一个小问题 :
n 条直线最多可以将平面分割成几部分 ?
想想 最优的分割方法是怎样的呢 ?
1 . 任意两条直线都不相交 。
2 . 没有三线共点的情况 。
// 但是若现在我们的直线有了互相平行的两条 , 结果则会在 最优的基础上减 1 , 若是有 3 条互相平行的直线 , 结果则会在最优的基础上 减 ( 2 + 1 ) = 3 条
考虑在前 n 条直线是最优的情况下 , 当插入第 n + 1 条直线时 , 最优的情况是这条直线会穿过 n + 1 个部分 , 则此时会在原基础上增加 n + 1 个部分 , 因为直线每穿过一部分 , 就会将它所在的平面一分为二 , 因此 , 在 n + 1 条直线时 , 总平面数是 f ( n ) + n + 1 .
因此 , n 条直线在最优的情况将平面 分为 L( n ) = ( n * ( n + 1 ) ) / 2 + 1 。
二 . V 型折线分割平面
思考 ... 是不是可以将 V 型线反向延长 ,得到两条相交的直线 ,此时演变成第一种问题的形式 , 当将其变成 V 型时 ,会使线的条数增加 1 倍 , 每变一个 V 型 , 会使平面的数目减少 2 , 则 n 个 V 型就会使其减少 2 * n 。
所以 , n 条 V 型折线 最多可以分出平面 V ( n )
三 . Z 型折线分割平面 ( 上下边是互相平行的 )
还是按照之前的方法 , 将每个顶点的直线反向延长 ,则 Z 型折现可视为 3 条直线相交 ,又因为每个 Z 型都有一组互相平行的直线 , 所以对于每个 Z 型 , 应在最优解上减 1 ,若再去掉反向延长线 , 每个 Z 型还会在最优的基础上 减 4 , 所以对于 每个Z 型应是在最优的基础上减 5
四 . M型折线分割平面 (两个角是平行的)
M 型 因为有一组平行线 , 所以每个 M 型折线的最优解 要 减 1 ,将M 的每个顶点的线反向延长 , 会得到 4 条相交的折线 , 若回归到M 型 ,则每个M型的折线会在最优的基础上 减少 8 , 所以对 每个 M 型的折线会减少 9 。
DP-直线分割递推的更多相关文章
- dp的简单递推笔记1
(1)转自rockZ的博文 UVa 10328 - Coin Toss (递推) 题意:给你一个硬币,抛掷n次,问出现连续至少k个正面向上的情况有多少种. 原题中问出现连续至少k个H的情况,很难下手. ...
- BZOJ 1677 [Usaco2005 Jan]Sumsets 求和:dp 无限背包 / 递推【2的幂次方之和】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1677 题意: 给定n(n <= 10^6),将n分解为2的幂次方之和,问你有多少种方 ...
- bzoj2004公交线路——DP+矩阵加速递推
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2004 求方案数,想到DP: 因为两个站间距离<=p,所以每p个站中所有车一定都会停靠至 ...
- poj 2229 【完全背包dp】【递推dp】
poj 2229 Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 21281 Accepted: 828 ...
- POJ 2229 sumset ( 完全背包 || 规律递推DP )
题意 : 给出一个数 n ,问如果使用 2 的幂的和来组成这个数 n 有多少种不同的方案? 分析 : 完全背包解法 将问题抽象==>有重量分别为 2^0.2^1.2^2…2^k 的物品且每种物 ...
- [bzoj1925][Sdoi2010]地精部落_递推_动态规划
地精部落 bzoj-1925 Sdoi-2010 题目大意:给你一个数n和模数p,求1~n的排列中满足每一个数的旁边两个数,要么一个是边界,要么都比它大,要么都比它小(波浪排列个数) 注释:$1\le ...
- 2018牛客网暑期ACM多校训练营(第一场)B Symmetric Matrix(思维+数列递推)
题意 给出一个矩阵,矩阵每行的和必须为2,且是一个主对称矩阵.问你大小为n的这样的合法矩阵有多少个. 分析 作者:美食不可负064链接:https://www.nowcoder.com/discuss ...
- 牛客网 暑期ACM多校训练营(第二场)A.run-动态规划 or 递推?
牛客网暑期ACM多校训练营(第二场) 水博客. A.run 题意就是一个人一秒可以走1步或者跑K步,不能连续跑2秒,他从0开始移动,移动到[L,R]的某一点就可以结束.问一共有多少种移动的方式. 个人 ...
- 动态规划-递推-HDU2048
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2048 全错=全不匹配 设当前全错的个数是dp[n] 那么前(n-1)个全错的话,第n个数就可以从前(n- ...
随机推荐
- python基础四之列表
列表详解 列表的增删改查! 增加 li = ['zxc', 'is', 'a'] # append 在列表结尾整体添加 修改列表,但是没有返回值 li.append('boy') print(li) ...
- P1104 最大公约数和最小公倍数问题
题目描述 输入2个正整数 \(x0, y0 (2 \le x0 \lt 100000, 2 \le y0 \le 1000000)\) ,求出满足下列条件的 P,Q 的个数. 条件: P,Q是正整数 ...
- SpringBoot2.X 项目使用外置绝对路径的配置文件
spring-boot-absolute-config 前言 该工程是为解决应用部署应用时指定配置文件存放位置的问题. SpringBoot项目默认加载以下位置的配置文件: ? 1 2 3 4 cla ...
- 开源项目使用 appveyor 自动构建
我写了几个开源项目,我想要有小伙伴提交的时候自动运行单元测试,自动运行编译,这样可以保证小伙伴提交清真的代码 本文将会告诉大家如何接入 appveyor 自动构建方案,在 Github 上给自己的开源 ...
- linux oops 消息
大部分 bug 以解引用 NULL 指针或者使用其他不正确指针值来表现自己的. 此类 bug 通 常的输出是一个 oops 消息. 处理器使用的任何地址几乎都是一个虚拟地址, 通过一个复杂的页表结构映 ...
- Linux 内核中的数据类型
在我们进入更高级主题之前, 我们需要停下来快速关注一下可移植性问题. 现代版本的 Linux 内核是 高度可移植的, 它正运行在很多不同体系上. 由于 Linux 内核的多平台特性, 打算做认真使用的 ...
- eclipse要修改的配置
1. 修改 html的字体大小 window->preferences->General--> appearance--> Colors and fonts-->basi ...
- 0012 sublime快捷操作emmet语法
Emmet的前身是Zen coding,它使用缩写,来提高html/css的编写速度. 生成标签 直接输入标签名 按tab键即可 比如 div 然后tab 键, 就可以生成 如果想要生成多个相同标签 ...
- DEVOPS技术实践_14:使用docker部署jenkins
一 基础环境准备 [root@node6 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node6 ~]# yum -y ...
- mysql主从之半同步复制和lossless无损复制
一 MySQL 的三种复制方式 1.1 简介 asynchronous 异步复制 fully synchronous 全同步复制 Semisynchronous 半同步复制 从MySQL5.5 开始, ...