P3799 妖夢拼木棒 組合數學

2022-04-30 10:09:07 字數 897 閱讀 1004

上道題中,妖夢斬了一地的木棒,現在她想要將木棒拼起來。

有n根木棒,現在從中選4根,想要組成乙個正三角形,問有幾種選法?

輸入格式:

第一行乙個整數n

第二行n個整數,a1,a2,……an(0輸出格式:

一行乙個整數,對1e9+7取模

輸入樣例#1: 

4 1 1 2 2

輸出樣例#1: 

1

對於30%的資料 n<=5000

對於100%的資料 n<=100000

很顯然這是個數學水題,我都會做...

因為是要找 4 根小木棍.

所以很顯然這個正三角形的組成是:

n1 , n2 , n1+n2 , n1+n2;

所以公式就是 :

ansn = c1

num [ 

j ]*c1

num [ n - j ]*c2

num [ n ]

其中,num陣列代表當這種長度的木板所有的數量.然後 j 為 從 1 列舉到 n/2 .

然後求解即可.

#includeusing

namespace

std;

const

int maxn=100008

;#define ll long long

#define mo 1000000007

#define c1(x) (x)

#define c2(x) ((x)*((x)-1)/2)ll n,maxl,ans;

ll num[maxn],a[maxn];

intmain()

for(int i=2;i<=maxl;i++)}}

cout

}

P3799 妖夢拼木棒

有 nn根木棒,現在從中選 4 根,想要組成乙個正三角形,問有幾種選法?答案對 10 9 7取模。輸入 第一行乙個整數 n。第二行 n 個整數,第 i 個整數 a i,代表第 i 根木棒的長度。輸出 一行乙個整數代表答案。主要是對長度進行計算和處理 因為ai的數值偏小。注意 using namesp...

P3799 妖夢拼木棒 暴力列舉 組合數

上道題中,妖夢斬了一地的木棒,現在她想要將木棒拼起來。有 nn根木棒,現在從中選 4 根,想要組成乙個正三角形,問有幾種選法?答案對 10 9 7 取模。第一行乙個整數 nn。第二行 nn 個整數,第 i 個整數 ai 代表第 i 根木棒的長度。一行乙個整數代表答案。輸入 4 1 1 2 2輸出 1...

洛谷P3799 妖夢拼木棒

題目鏈結 上道題中,妖夢斬了一地的木棒,現在她想要將木棒拼起來。有n根木棒,現在從中選4根,想要組成乙個正三角形,問有幾種選法?第一行乙個整數n 第二行n個整數,a1,a2,an 0 一行乙個整數,對1e9 7取模 4 1 1 2 2 對於30 的資料 n 5000 對於100 的資料 n 1000...