平面劃分。

來源:互聯網
上載者:User

一條直線能夠將平面分成2部分,兩條直線能夠將平面分成4部分,而對於一條“V”型線而言,平面被分成2部分,兩條“V”型線最多能夠將平面分成7部分。對於橢圓封閉曲線對平面的劃分又將不一樣,任意兩個橢圓至多有兩個交點。現在給定一個N,你能夠計算出三種不同情況下,空間最多被劃分出多少個部分嗎?

若干組測試資料,每組測試資料佔一行,每行一個正整數N(1<=N<=10^6)

每組資料輸出一行,每行3個整數,之間用空格隔開。

分別輸出N條直線,N條“V”型線,和N個橢圓最多能夠將平面劃分成多少部分,結果保證在10^18以內。

輸入 1 2輸出 2 2 24 7 4本題很簡單,直接代公式。具體推導過程,看你數學基礎了(高中生照樣能完成的)列出它們之間的遞迴關係:直線: f(n)=f(n-1)+n;v型直線:f(n)=f(n-1)+4n-3;橢圓(兩兩相交只要兩個點):f(n)=f(n-1)+2(n-1);如果不求,直接去遞迴,直接就TLE了。方法:累加相消。舉一個例子:對於f(n)=f(n-1)+n;f(n)-f(n-1)=nf(n-1)-f(n-2)=n-1;f(n-2)-f(n-3)=n-2;....... f(2)-f(1)=2;左右相加得:f(n)-f(1)=n+n-1+n-2+......n-(n-2);故:f(n)=n(n-1)-(n-1)(n-2)/2+2;化解得:f(n)=(n^2+n+2)/2;另外兩個:同樣的方法。

#include<stdio.h>int main(){    long long n,L1,L2,L3;   while(scanf("%lld",&n)!=-1)   {   L1=(n*n+n+2)/2;      //直線劃分平面            L2=2*n*n-n+1;        //V直線劃分平面    L3=n*n-n+2;          //橢圓(兩兩相交只有2個點)如果是四個 2*n*n-2*n+2   printf("%lld %lld %lld\n",L1,L2,L3);   }   return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.