平面分割

平面分割
描述 Description
【問題描述】
  同一平面內有n(n≤500)條直線,已知其中p(p≥2)條直線相交於同一點,則這n條直線最多能將平面分割成多少個不同的區域?
【輸入格式】
  兩個整數n(n≤500)和p(2≤p≤n)。
【輸出格式】
  一個正整數,代表最多分割成的區域數目。
【輸入樣例】Surface.in
  12 5
【輸出樣例】Surface.out
  73

時間限制 Time Limitation
各個測試點1s

這裏寫圖片描述
如圖,首先考慮n-1=p(n,p>=2)的情況。此時分割的空間數爲2(n-1)。

再加上一條直線。
這裏寫圖片描述
此時直線每過一條直線,就能多分割出一塊空間,共可分割出n塊。

所以得到遞推式:f(p)=2*p;
f(n)=f(n-1)+n;

#include<iostream>

using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    int total=2*m;
    for (int i=m+1;i<=n;i++)
    total+=i;
    cout<<total;

}
發佈了41 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章