上道題中,妖夢斬了一地的木棒,現在她想要將木棒拼起來。
有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 .
然後求解即可.
#includeusingnamespace
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...