混凝土数学
题目描述
你正在看混凝土数学,这时旁边的工地开工了,你觉得看他们施工更有意思,于是你向窗外望去,注意到了一些长度不同的木棍。具体而言,你看到了 n n n 条木棍编号为 1 , 2 , 3 , … , n 1,2,3,\ldots,n 1,2,3,…,n,长度为 a 1 , a 2 , a 3 , … , a n a_1,a_2,a_3,\ldots,a_n a1,a2,a3,…,an。你突发奇想:有多少拿出其中 3 3 3 条木棍的方案满足它们能构成等腰三角形呢?你不想要输出的数太大,所以最后的方案要对 998244353 998244353 998244353 取模。
给出等腰三角形的要求:任意两边之和大于第三边且至少有两条边边长相等。
例如,如果木棍长度分别为 { 3 , 3 , 2 , 2 , 4 , 5 } \{3,3,2,2,4,5\} {3,3,2,2,4,5},你就有 6 6 6 种方法,选取的木棍编号分别为: { 1 , 2 , 3 } \{1,2,3\} {1,2,3}, { 1 , 2 , 4 } \{1,2,4\} {1,2,4}, { 1 , 2 , 5 } \{1,2,5\} {1,2,5}, { 1 , 2 , 6 } \{1,2,6\} {1,2,6}, { 1 , 3 , 4 } \{1,3,4\} {1,3,4}, { 2 , 3 , 4 } \{2,3,4\} {2,3,4}。
输入格式
第一行给出一个正整数 n n n 表示木棍个数。
第二行 n n n 个正整数表示 a 1 , a 2 , a 3 , … , a n a_1,a_2,a_3,\ldots, a_n a1,a2,a3,…,an。
输出格式
一个数表示总方案数对 998244353 998244353 998244353 取模的结果。
样例 #1
样例输入 #1
6
3 3 2 2 4 5
样例输出 #1
6
样例 #2
样例输入 #2
6
1 1 4 5 1 4
样例输出 #2
5
样例 #3
样例输入 #3
6
2 2 2 2 2 2
样例输出 #3
20
提示
- Subtask1 ( 30 30 30 pts): 1 ≤ n ≤ 200 1\leq n \leq 200 1≤n≤200。
- Subtask2 ( 30 30 30 pts): 1 ≤ n ≤ 2000 1\leq n \leq 2000 1≤n≤2000。
- Subtask3 ( 20 20 20 pts):木棍长度全部相等。
- Subtask4 ( 20 20 20 pts):无特殊限制。
对于 100 % 100\% 100% 的数据满足: 1 ≤ n ≤ 2 × 1 0 5 1\leq n \leq 2\times 10^5 1≤n≤2×105, 1 ≤ a i ≤ 2 × 1 0 5 1\leq a_i \leq 2\times 10^5 1≤ai≤2×105。
Scratch实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9gGmTMT-1721459363924)(https://i-blog.csdnimg.cn/direct/a07ef666121040a39260b7c65c486986.png)]
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容