基础算法题——折线分割平面(规律)

2023-11-11

题目

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

Output
对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。

Sample Input
2
1
2


题目中折线表明,折线由两条射线组成,折线上的转折点并不会与空间边界相交。

如何保证n条折线分割平面的为最大数目?
画的折线每一条射线必须与原先图中的每一条射线相交一次。

举例说明:
在 n = 1的条件下
原先图中并没有折线,那么就不需要画折线时,不需要考虑相交问题。
n=1
在 n = 2 条件下
原先图 n-1 中有两条射线,由于画新的折线每一条射线必须与原先图中的每一条射线相交一次。那么就需要在画新的折线时,将它们相交四次。
n=2


解题步骤:
①、相交点的数量 jd 与 n 的关系

n 1 2 3 4
jd 0 4 12 29

jd[n] = 4 * (n-1) + jd[n-1]


②、jd[n] 与 n 条折线分割平面的最大数目的关系

n 1 2 3 4
jd 0 4 12 29
dp 2 7 16 34

dp[n] = jd[n] + n + 1

#include<stdio.h>
#define ll long long
ll jd[10010], dp[10010];
int n;

void init(){
	jd[1]=0;
	jd[2]=4;
	for(int i=3; i<=10000; i++){
		jd[i] = 4 * (i-1) + jd[i-1];
	}
	
	dp[1]=2;
	dp[2]=7;
	for(int i=3; i<=10000; i++){
		dp[i] = jd[i] + i + 1;
	}
}

int main(){
	init();
	scanf("%d", &n);
	for(int i=1; i<=n; i++){
		int x;
		scanf("%d", &x);
		printf("%lld\n", dp[x]);
	}
	
	return 0;
}

若对你有帮助,请给我一个小小的赞吧:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基础算法题——折线分割平面(规律) 的相关文章

随机推荐

  • 2020-08-13

    https www cnblogs com daizhengyang p 13384169 html https blog csdn net qq 27289001 article details 77150598 https www cn
  • oracle学习之rownum和rowid

    rownum先百度一波https www cnblogs com xfeiyun p 16355165 html rownum是oracle特有的一个关键字 对于基表 在insert记录时 oracle就按照insert的顺序 将rownu
  • 编程的未来

    从 ChatGPT 诞生至今 在程序员的圈子里 我们一直有两种讨论 最开始所恐慌的 编程没有未来 ChatGPT 是不是要取代程序员 编程的方式前所未有地发生了变化 现如今 GitHub Copilot Chat 可以让开发者们直接在编辑器
  • 使用python分析数据分布

    要使用 Python 分析数据分布 你可以使用 Python 中的数据可视化库 如 matplotlib 或 seaborn 例如 你可以使用 matplotlib 的 hist 函数绘制数据的直方图 以查看数据的分布情况 你也可以使用 s
  • redis-cli报错Could not connect to Redis at 127.0.0.1:6379: Connection refused

    新手安装完redis后想要使用redis cli连接但是报错 为什么会报这个错呢 首先启动redis server 看能否启动 启动命令式 redis server 然后 1如果修改了IP地址 比如说改成了192 168 66 66 那么执
  • 中移物联ML302 4G Cat1 模组TCP/UDP 实现流程

    中移物联ML302 4G Cat1 模组TCP UDP 实现流程 注意 下文种的 表示 r n 一 首先AT 00 57 34 794 发 AT 00 57 35 756 发 AT 00 57 35 760 收 AT OK 二 查询卡CIM
  • 并发策略之分工原则

    本文主要思想来自 Java虚拟机并发编程 薛笛 译 为什么要用并发 并发是再在有限的资源下提高性能的有效手段 当然现在互联网环境下并发访问的现象也比比皆是 但是本文并不涉及处理并发访问 而是使用并发手段解决复杂任务的策略 另外关于并发和并行
  • 算法——排序——归并排序图解动画

    归并排序 简介 代码示例 排序过程 分解 合并 时间复杂度 空间复杂度 稳定性 简介 归并排序分为两部分 分解 合并 分解 归并算法会把数组分成两个长度相同的子数组 直到无法再分割 每个数组只有一个元素 此过程不消耗时间资源 对应的时间复杂
  • 03 Java_数据类型&变量&运算符

    第二章 数据类型 变量和运算符 double string character integer scanner score name boolean true false Java常用的数据类型 Java语言提供了八种基本类型 六种数字类型
  • activemq的clientId

    这个id如果不设置的话 那么会以电脑主机以及毫秒值加上随机数值来确认 比如 DESKTOP ST4H4BI 61938 1593840777757 0 1 但是也可以设置 但是要注意 activemq不允许多个客户的地址相同且clientI
  • python与数据挖掘 上机实验_python数据挖掘实验报告1

    python数据挖掘实验报告1 python数据挖掘实验报告1 实验内容及步骤 包含简要的实验步骤流程 1 使用Pandas datareader获取任意两支股票近三个月的交易数据 做出收盘价的变动图像 2 使用Pandas datarea
  • 【Paddle NLP入门打卡】实践课1:词向量应用演示 学习笔记

    文章目录 1 下载配置Embedding 2 认识Embedding 3 将词向量映射到低维空间 4 基于TokenEmbedding的词袋模型 5 构造Tokenizer 5 2 查看相似语句相关度 6 使用可视化VisualDL查看句子
  • Java垃圾回收机制、性能优化

    前言 Android开发中经常会遇见应用内存不断增加 或者在处理不当的情况下 造成内存泄漏 严重会导致OOM 但是Java有自动垃圾回收机制 为什么还会造成这种情况呢 那我们通过new关键字创建出来的对象 开启的Activity在什么情况下
  • C++解析字符串获取参数

    文章目录 1 功能说明 2 代码 1 功能说明 一些软件在运行时 需要一些命令 这里使用通过字符串的方式 来获取软件启动需要的一些参数 比如 name1 aaa name2 bbb 有这样一个字符串 通过解析 name1对应的aaa nam
  • 【高危】Google Chrome V8 类型混淆漏洞(CVE-2023-2033)

    漏洞描述 Google Chrome V8是Google开源的JavaScript和WebAssembly引擎 被用在Chrome和Node js等浏览器和平台中 该项目受影响版本存在类型混淆漏洞 攻击者可通过诱导用户打开恶意链接来触发此漏
  • 结构化分析

    1 什么是结构化分析 结构化分析 Structured Analysis 简称SA 简单来说就是是软件工程中的一种面向数据流的需求分析的方法 它的本质是一种创建模型的活动 2 结构化分析的具体步骤有哪些 1 建立当前系统的 具体模型 系统的
  • C++ algorithm 头文件下的常用函数详解

    6 9 algorithm 头文件下的常用函数 使用algorithm头文件 6 9 1 max min 和abs max x y 和min x y 分别返回x和y中的最大值和最小值 abs x 返回x的绝对值 注意浮点型的绝对值请用mat
  • java程序配置dns后超时_Android笔记之解决OkHttp解析dns超时时间无法设置的问题

    问题 使用OkHttp 设备切换路由后 访问网络出现长时间无响应 很久以后才抛出UnknownHostException 这明显不是我们想要的 我们设置的connectTimeout属性似乎对dns的解析不起作用 如何解决 我们先看看OkH
  • FreeRTOS软件定时器

    目录 说明 一 定时器简介 1 1 定时器 1 2 软件定时器 1 3 硬件定时器 1 4 FreeRTOS软件定时器 1 5 软件定时器服务任务作用 1 6 软件定时器的命令队列 1 7 软件定时器相关配置 1 8 单次定时器和周期定时器
  • 基础算法题——折线分割平面(规律)

    题目 测试平台 我们看到过很多直线分割平面的题目 今天的这个题目稍微有些变化 我们要求的是n条折线分割平面的最大数目 比如 一条折线可以将平面分成两部分 两条折线最多可以将平面分成7部分 具体如下所示 Input 输入数据的第一行是一个整数