2050 折线分割平面

题目

Problem Description

n 条折线分割平面的最大数目

Input

输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数 n(0 < n <= 10000),表示折线的数量

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

Sample Input
2
1
2

Sample Output
2
7

数学知识

直线

  • N 条相交的直线最多能把平面分割成几块

当添加第n条直线时,为了使平面最多,则第 n 条直线要与前面 n-1 条直线都相交,并且没有任何三条线交于一个点

这样,第 n 条直线一共有 n-1 个交点

我们知道,增加 n 个交点,则增加 n+1 个平面

所以 n 条直线分割平面最大数是 1 + 1 + 2 + 3 + ... + n = (n2 + n + 2) / 2

平行线

  • 把直线改为平行线,最多能把平面分割成几块

当第 N 次添加时,前面已经有 2N-2 条直线了

按我们上面讨论的知道,第 N 次添加时,第 2N-1 条直线和第 2N 条直线各能增加 2(n-1)+1 个平面

所以第 N 次添加增加的面数是 2[2(n-1) + 1] = 4n - 2 个

因此,总面数应该是 2n² + 1

折线

  • 把平行线改为折线,最多能把平面分割成几块

通过观察可以发现,每当一组平行线相交后,就会减少一个面
因此,n 条折线分割平面,自然就是上面求的的平行线分割平面数减去 n,即 2n² + 1 - n

代码

#include <cstdio>
int main() {
    int n, val;
    scanf("%d", &n);
    while (n--) {
        scanf("%d", &val);
        printf("%d\n", 2 * val * val + 1 - val);
    }
}
来自河南
感谢观看!欢迎联系或留言!
码字不易!转载请标明来源——
- 文章:2050 折线分割平面
- 作者:longlong
- 链接:https://blog.long-code.cn/index.php/2024/03/24/475/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇