CodeVS1056 圓內三角形統計

2022-04-06 01:32:04 字數 1098 閱讀 6325

為了更好地解決這個問題,我們來看幾個例子。

首先我們定義n!=1*2*3*……*n。

再定義c(m,n)為從m個元素中無序取出n個的方法,p(m,n)為從m個元素中有序取出n個的方法。

這樣的定義是什麼意思呢?比如說從1,2,3,4共4個元素中中取出3個,有(1,2,3);(1,3,4);(2,3,4);(1,2,4)這樣共4種,而這裡是不考慮順序的,所以c(4,3)=4,而如果對每一種方案考慮它的排列順序的話,那結果將會不同,因為(1,2,3);(1,3,2);(2,1,3);(2,3,1);(3,1,2);(3,2,1)將被視為不同的方案,所以p(4,3)=6*4=24.

下面給出它們的計算公式:

p(m,n)=m!/(m-n)! c(m,n)=m!/((m-n)!*n!)

再來解決這個問題,你會覺得更輕鬆!

圓周上有n(n<=100)個點,用線段將它們彼此相連。這些線段中任意三條在圓內都沒有公共交點,問這些線段能構成多少個頂點在圓內的三角形?

輸入:一行,為數值n。

輸出:一行,為所求的答案。

樣例輸入:6

樣例輸出:1 

注意:只要你資料處理得當,結果與中間數值的範圍一定在longint以內,請不要使用int64,因為這可能會引起系統誤判!

看了很長時間也沒看出樣例是怎麼湊出來的。。。

先畫個圓,在圓裡畫乙個三角形,然後延長三條邊,和圓有6個交點。

所以,我們可以推出有7個點的情況,從7個點中任意找出6個點,就是乙個三角形。(組合)

繼續往後推,就可以推出公式cn

6(符號不會打)。

我們知道

於是我們把這個公式n!/6!(n-6)!變形成1/6!*n!/(n-6)! 而n!/(n-6)!=(n-5)*(n-4)*(n-3)*(n-2)*(n-1)*n

(n-5)*(n-4)*(n-3)*(n-2)*(n-1)*n/1/2/3/4/5/6 就是最終的公式

所以看出。。。題目裡的提示是有用的。。。

#includeusing

namespace

std;

long

long

n;int

main()

維基百科 組合數學

圓與三角形(圓與三角形是否相交)

給出圓的圓心和半徑,以及三角形的三個頂點,問圓同三角形是否相交。相交輸出 yes 否則輸出 no 三角形的面積大於0 第1行 乙個數t,表示輸入的測試數量 1 t 10000 之後每4行用來描述一組測試資料。4 1 三個數,前兩個數為圓心的座標xc,yc,第3個數為圓的半徑r。3000 xc,yc ...

圓與三角形

1298 圓與三角形 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出圓的圓心和半徑,以及三角形的三個頂點,問圓同三角形是否相交。相交輸出 yes 否則輸出 no 三角形的面積大於0 第1行 乙個數t,表示輸入的測試數量 1 t 10000 之後每4行用來描述一組測試...

1298 圓與三角形

1298 圓與三角形 hackerrank 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出圓的圓心和半徑,以及三角形的三個頂點,問圓同三角形是否相交。相交輸出 yes 否則輸出 no 三角形的面積大於0 第1行 乙個數t,表示輸入的測試數量 1 t 10000 之後...