怎么写????教完别人,自己开始问问题

E. 平面分割2

Problem ID: 9367

Contest ID: 5998

选做题

Time Limit:

1000ms

Memory Limit:

524288kB

题目描述

设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。

输入格式

输入一个整数n(n<=500)。

输出格式

输出区域个数。

样例

Input 1

4

Output 1

14

数据范围

n是一个整数,满足n<=500。

样例解释

这个样例中,当n=4时,封闭曲线把平面分割成了14个区域。

C++11

加载最近代码

1

Debug助手

题目列表

4 个赞

不是有题解吗

4 个赞

没有

3 个赞

封闭曲线=圆

4 个赞

你要不画个图,找下规律

5 个赞

a[i]=a[i-1]+(i-1)*2;
核心代码

4 个赞

错了,谁教教我!!!

1 个赞

n=1

n=2

n=3

n=4

析:当n-1个圆时,区域数为f(n-1).那么第n个圆就必须与前n-1个圆相交,则第n个圆被分为2(n-1)段线段,增加了2(n-1)个区域。

故:
f(n)=f(n-1)+2(n-1)
=f(1)+2+4+……+2(n-1)
=n^2-n+2

3 个赞
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    long long a[505];
    cin>>n;
    a[1]=2;
    for(int i=2;i<=n;i++){
        a[i]=a[i-1]+2*(i-1);
    }
    cout<<a[n];
    return 0;
}

代码

1 个赞

@桑铃茜
讨论时不能直接发题目代码

1 个赞