上道題中,妖夢斬了一地的木棒,現在她想要將木棒拼起來。
有n根木棒,現在從中選4根,想要組成乙個正三角形,問有幾種選法?
第一行乙個整數n
第二行n個整數,a1,a2,……an(0
一行乙個整數,對1e9+7取模
輸入 #1
4 1 1 2 2
輸出 #1
1
對於30%的資料 n<=5000
對於100%的資料 n<=100000
by-szc
【解題思路】
4個木棒拼正三角形,就是2根一樣長的和另外2根拼起來
木棒長度最大5000,可以用乙個桶存下
列舉兩根短的木棒的長度就可以了
【code】
1 #include 2 #include 3 #include 4using
namespace
std;
5const
int mod=1000000007;6
int n,ans,maxn=-1
<<30;7
int a[100005
]; 8
int cnt[5005
];9 inline int c1(int
x)12 inline int c2(int
x)15
intmain()
22for(register int i=1;i<=maxn;i++)31}
32}33 printf("
%d\n
",ans%mod);
34return0;
35 }
暴力列舉 妖夢拼木棒
上道題中,妖夢斬了一地的木棒,現在她想要將木棒拼起來。有 n 根木棒,現在從中選 4 根,想要組成乙個正三角形,問有幾種選法?答案對 109 7 取模 第一行乙個整數 n。第二行 n 個整數,第 i 個整數 ai 代表第 i 根木棒的長度。一行乙個整數代表答案 輸入樣例 41 1 2 2 輸出樣例資...
P3799 妖夢拼木棒
有 nn根木棒,現在從中選 4 根,想要組成乙個正三角形,問有幾種選法?答案對 10 9 7取模。輸入 第一行乙個整數 n。第二行 n 個整數,第 i 個整數 a i,代表第 i 根木棒的長度。輸出 一行乙個整數代表答案。主要是對長度進行計算和處理 因為ai的數值偏小。注意 using namesp...
妖夢斬木棒
顯然,大概率是用線段樹維護區間資訊。考慮區間合併 每次合併的時候我們只關注左區間靠右的第乙個非x符號和右區間的靠左第乙個非x符號。然後我們維護一下即可,不過我們要注意如果當前區間只有乙個非x字元,那麼合併之後就沒了。ac pragma gcc optimize ofast funroll all l...