hdu,2050,折线分割平面

HDU2050 折线分割平面(基础dp&递推) HDU2050 折线分割平面 参考博文链接:HDU2050 折线分割平面(递推) 题目链接 HDU2050 题意 就是说,给定一个n。代表图内有多少个折线。 然后对于这些个折线,最多能划分出多少个平面? 解析 这个是最开头的状态,一个折线把平面分成了两个部分 最朴素的情况下,我们可以吧眼神聚焦到射线或者线段上,就是一条已有的直线,加入一条射线或者线段,会将原有的一个平面分割成两个。 也就是一条... 阅读详情
这种类型的题目,在acm编程中比较经典,这里我们由浅入深来学习下:
(1)在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相

交于一点,试问这些直线将圆分成多少区域。
很容易看出递推关系,每新增一条直线,都将原来所有的区域分成两半,因此第n条直线会在原来的基础

上再添加n个平面,函数递推关系式如下:

递推公式1:

f(0) = 1
f(1) = 2
f(2) = 4
...
f(n) = f(n - 1) + n

通项公式推导1:

f(n)
= f(n - 1) + n
= f(n - 2) + n + (n - 1)
= ...
= f(0) + n + (n - 1) + ... + 1
= 1 + (1 + n) * n / 2
(2)若每次使用两条直线分割,即此时的n相当于原来的2n,可得:
递推公式2:

f(0) = 1
f(1) = 4
f(2) = 11
...
f(n) = f(n - 1) + 2 * n - 1 + 2 * n = f(n - 1) + 4 * n - 1

通项公式推导2_1:

f(n)
= f(n - 1) + (4 * n - 1)
= f(n - 2) + 4 * (n - 1) - 1 + (4 * n - 1)
= ...
= f(0) + (4 * 1 - 1) + (4 * 2 - 1) + ... + (4 * n - 1)
= 1 + 4 * (1 + 2 + .. + n) - n
= 1 + 4 * (1 + n) * n / 2 - n
= 1 + 2 * n * n + n

上面的推导公式比较复杂,其实也可以直接将通项公式推导1中推导结果的n用2n替代,这样就容易理解多

了:
通项公式推导2_2:

f(n)
= 1 + (1 + (2 * n)) * (2 * n) / 2
= 1 + 2 * n * n + n
(3)若是普通直线,相交处所分割的平面为4份,而折线为两份,即每次分割比上面所考虑的情况少2份

,那么只要在上述情况的每次分割时减去2就能得到本题的结果了。

递推公式3:

f(n)
= f(n - 1) + 4 * n - 1 - 2
= f(n - 1) + 4 * n - 3
通项公式:

f(n)
= 1 + 2 * n * n + n - 2 * n
= 1 + 2 * n * n - n
对于(3)这种类型,还有另外一种很好的解释(分享下!!):
分割平面的个数=交点个数+顶点个数+1
令f(n-1)为前n-1条折线分割的平面数,当添加第n条折线时。
因为每一条边与前n-1条折线的两条边都相交,故增加的交点数为2*2*(n-1),顶点增加1,故
f(n)=f(n-1)+4(n-1)+1
f(n-1)=f(n-2)+4(n-2)+1
....
f(2)=f(1)+4*1+1
f(1)=2
f(n)-2=4((n-1)+(n-2)+...+1)+(n-1)=4*((1+n-1)*(n-1)/2)+n-1=2(n*n-n)+n-1
f(n)=2n^2-n+1

可以得出公式f(n)=2n^2-n+1

总结:

直线:
最多可分为(1/2)*n*(n+1)+1块区域
折线:
那就是可以分成(2×n^2-n+1)块区域


AC代码:
#include <stdio.h>
int main()
{
    int C,n,r;
    scanf("%d",&C);
    while(C--)
    {
        scanf("%d",&n);
        r = 2*n*n - n + 1;
        printf("%d\n",r);
    }
    return 0;
}
杭电HDU2050题的ac程序 一个十分简单的程序,能够ac杭电hdu的第2050题,无注释,简单明了 立即下载

相关推荐

gitlab远程子仓库配置SSH - 保姆级教程

在网上搜索了一些方法,但是不够详细,走了好多弯路,所以记录下配置SSH的详细过程吧。

是菠萝的博客 1万+

在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相交于一点,试问这些直线将圆分成多少区域。

在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相交于一点,试问这些直线将圆分成多少区域。输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0

m0_63263153的博客 951

vtk相机_分别用 VTK 体绘制和面绘制来实现医学图像三维重建;

序言,VTK介绍:VTK 全称为 The Visualization Toolkit (可视化工具),是一个开源、跨平台、自由获取、支持并行计算的图形应用函数;拥有3D 渲染的最新工具、提供3D交互模式以及2D绘图等。VTK 包含一个C++类库,目前提供了众多语言接口,例如 Java、Python、TCL;在三维函数库OpenGL 的基础上采用面向对象设计方法发展起来图形学基本概念和数据...

weixin_39665302的博客 687

折线分割平面

【题型一】直线分割平面 在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相交于一点,试问这些直线将圆分成多少区域。 分析: 当添加第N条,为了使平面最多, 则第N条直线要与前面的N-1条直线都相交,且没有任何三条直线相交一个点。 则添加第N条直线会多N-1个交点。由于每增加N个交点,就增加N+1个平面,所以添加第N条直线来会在之前的基础上增加N个

casion 7425

SAP特殊采购类80实战:跨工厂生产配置避坑指南(附完整测试流程)

本文深入解析SAP特殊采购类80在跨工厂生产场景下的实战应用与配置要点。文章从核心业务逻辑出发,详细拆解了后台配置、主数据与BOM的“双工厂”思维模式,并提供了从创建需求到成品收货的完整测试流程。重点揭示了多层BOM下的需求传递陷阱及常见报错解决方案,旨在帮助SAP顾问及用户规避实施风险,实现资源的灵活调度与流程自动化。

wind6的博客 1139

地瓜派RDK X5部署YOLOv11n避坑指南:手把手教你解决Softmax算子导致的性能暴跌问题

本文详细介绍了在地瓜派RDK X5开发板上部署YOLOv11n模型时遇到的性能问题及解决方案。通过强制BPU部署Softmax算子,成功将推理速度从7FPS提升至47FPS,并提供了完整的优化流程和技术细节,帮助开发者避免类似性能陷阱。

weixin_42629671的博客 268

线段分割平面问题

直线分割,折线分割,z型线分割 1. 直线分割 问题:在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相交于一点,试问这些直线将圆分成多少区域。 分析:添加第n条直线时,会增加n-1个交点,每增加n个交点,会增加n+1个平面,所以添加第n条直线会增加n个平面。 F[1]=2; F[n]=F[n-1]+n; 递推 F[n]=1+n*(n+1)/2 2.折线分割...

没有期待的日子反而会顺顺利利 740

别再到处找DEM了!手把手教你免费下载90米、30米、12.5米全球高程数据(附国内网盘链接)

本文详细介绍了如何免费获取全球90米(SRTM3)、30米(ASTER GDEM)和12.5米(ALOS)高精度DEM数据,并提供了国内网盘链接以绕过国际平台访问障碍。通过对比不同数据源的特点和适用场景,帮助用户根据项目需求选择最合适的DEM数据,同时分享了数据处理和质量提升的实用技巧,实现从数据获取到应用的无缝衔接。

weixin_28725949的博客 668

HDU | 2050 折线分割平面【动态规划,打表】

动态规划 专题 HDU 2050 折线分割平面 题目描述 输入输出样例 思路 仔细分析一下题目,关键是找到递推关系。折角的地方、射线只能分隔出一个平面,线段可以分出两个平面。 递推关系如下: dp[i] = 2*i*i-i+1; 可以直接打表。 代码 #include <iostream> #include <cstdio> #include <algor...

Wonz 600

阻容降压 vs 开关电源:5V小功率供电方案成本与安全深度对比

本文深度对比了阻容降压电路与开关电源在5V小功率供电方案中的核心差异。重点剖析了二者在成本、体积、效率、温升及安全隔离等方面的优劣,并结合智能温控器、LED驱动等典型应用场景,为硬件工程师提供了清晰的选型决策框架,帮助在成本与安全之间做出最佳权衡。

weixin_29310631的博客 702

全能媒体工具深度测评(下篇一):AI图文生成+全能解压+图片去文字,一键搞定素材精修

解压50多种格式,文生图,图生图

cs821984831的博客 40

HDU 2050 折线分割平面

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050 解题思路: 因为看上去就像需要多写几项猜递推,然后想着怎样画可以让新产生的区域最多,猜测当第n条折线每条射线与n-1条边相交时区域最多。 于是暴力画出了 n = 3, 16 n = 4, 29 看一下数据量是n<=10000,又没有让你取模,推测递推关系不可能有n^2,2^...

shadiao.的博客 178

A2B V1.0协议学习笔记(A2B System Specification V1.0)

A2B全称是 Automotive Audio Bus 汽车音频总线,主要是解决传统音频总线线多、线重、成本贵等问题。本文是以A2B V1.0规范为准,现在ADI又推出了A2B V2.0,物理层不兼容,采用了QPSK编码方式,后续有时间再更新。A2B总线的优点:支持1主多从的架构(最多10个子节点)支持50Mbps(具体是49.152 Mbps)的高带宽传输以及

qflook的博客 4424

HDU2050_折线分割平面数

HDU2050_折线分割平面数 - cchun - 博客园

qq_48550824的博客 156

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

hdu_problem_2050_折线分割平面

题目链接 由题目可以观察得到多一个折线,会将其中一个折线的内部分为3部分(多了两个),将外部分成2个部分,再加上夹角所形成的一个部分,所以每一个折线单独看会多出5个部分,但是夹角形成的部分是共用的,所以要减去多余的那一部分,所以是f(n)=f(n−1)+5∗(n−1)−(n−2)f(n) = f(n-1)+5*(n-1) - (n-2)f(n)=f(n−1)+5∗(n−1)−(n−2) /* * ...

CoderZhuuu 218

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HDU 2050:折线分割平面【数学】

折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 21675    Accepted Submission(s): 14790 Problem Description 我们看到过很多直线分割平面的题目,今天的这

所谓梦想,就是永不停息的疯狂。。。。。 609

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

HDU2050折线分割平面

题目: 折线分割平面 Time Limit: 2000/1000 MS(Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7343 Accepted Submission(s): 5178 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍

拂晓 2870

[HDU] 2050 折线分割平面

摘要:本文介绍了HDU 2050题"折线分割平面"的解题思路。通过分析基础情况和递推关系,推导出通项公式F(n)=2n²-n+1。给出了非递归和递归两种代码实现,其中非递归版预处理前10000项,递归版直接计算。该问题属于递推求解专题,考察数学推导能力。

时刻总结 608

HDU - 2050 折线分割平面详解

折线分割平面详解 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。 Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0&lt;n&lt;=1000...

PCCCCC的博客 823

HDU - 2050 折线分割平面 【找规律】

Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。 Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。 Output ...

一定要站在自己热爱的生活里闪闪发光 3万+

[hdu-2050] 折线分割平面

折线分割平面\color{#00F}{折线分割平面}折线分割平面 TimeLimit:2000/1000MS(Java/Others)\color{green}{Time Limit: 2000/1000 MS (Java/Others)}TimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)\color{g...

weixin_44577381的博客 215

HDU-2050-折线分割平面

HDU-2050-折线分割平面 我在写小白dp的时候遇到这样的数学问题。总结了三种类型=-=数学不是很好。。。 这是一道递推题 传送门 题目问的是折线,这些也是直线的变形 1.考虑单条直线分割情况 0条直线一个平面,一条直线两个平面,两条直线四个平面,三条直线7个平面,我们可以发现只有新增加的第n条直线与前n-1条直线相交时可以获得最大的平面数量,第n条直线与前n-1条之间相交会产生n-1个交点...

qq_44624316的博客 271

HDU2050-折线分割平面

我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。 Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。 Output 对于每个测试实例,请输出平面的最大分割数,...

weixin_43357583的博客 217

HDU2050 折线分割平面【切割平面】

折线分割平面 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 48678 Accepted Submission(s): 31973 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变...

海岛Blog 516

HDU2050 折线分割平面 动态规划

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050  分析:首先我们来看一直线分割平面,直线分割平面时,每增加n个结点,就会增加n+1个平面,我们用f(n)来表示n条直线最多分割出的平面数,那么就有f(n)=f(n-1)+n;其中f(1)=2;即每新加一条直线,都使他和原先所有的直线都有交点,原先有n-1条直线,那么新加一条直线后,就会

AC_Gibson的专栏 1342
上一篇: hdoj 1071 The Area 求面积
下一篇: HDU 1465 不容易系列之一 (错排)
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值