当前位置: 首页 > news >正文

题解:洛谷 P3799 小 Y 拼木棒

【题目来源】

洛谷:P3799 小 Y 拼木棒 - 洛谷 (luogu.com.cn)

【题目描述】

上道题中,小 Y 斩了一地的木棒,现在她想要将木棒拼起来。

\(n\) 根木棒,现在从中选 \(4\) 根,想要组成一个正三角形,问有几种选法?

答案对 \(10^9+7\) 取模。

【输入】

第一行一个整数 \(n\)

第二行往下 \(n\) 行,每行 \(1\) 个整数,第 \(i\) 个整数 \(a_i\) 代表第 \(i\) 根木棒的长度。

【输出】

一行一个整数代表答案。

【输入样例】

4 
1
1
2
2

【输出样例】

1

【解题思路】

image

【算法标签】

《洛谷 P3799 妖梦拼木棒》 #枚举# #组合数学# #洛谷原创#

【代码详解】

#include <bits/stdc++.h>
using namespace std;int main()
{// counts数组用于统计每个数字出现的次数,初始化为0long long counts[5005] = {0}, n, tmp, ans = 0;cin >> n; // 输入数字的总个数n// 读取n个数字,并统计每个数字出现的次数for (int i = 1; i <= n; i++) {cin >> tmp; // 输入当前数字counts[tmp]++; // 对应数字的计数加1}// 遍历所有可能的i和j,计算满足条件的组合数for (int i = 1; i <= 2500; i++) {for (int j = i; j <= 5000 - i; j++) {// k3表示数字i+j的出现次数int k3 = counts[i + j];// k1表示数字i的出现次数int k1 = counts[i];// k2表示数字j的出现次数int k2 = counts[j];// 如果i+j至少出现2次,才可能有有效组合if (k3 >= 2) {// 情况1:i == j,即两个相同的数相加if (i == j && k1 >= 2) {// 组合数计算:C(k1,2) * C(k3,2)tmp = (k1 * (k1 - 1) / 2) * (k3 * (k3 - 1) / 2) % 1000000007;ans += tmp;}// 情况2:i != j,即两个不同的数相加if (i != j && k1 >= 1 && k2 >= 1) {// 组合数计算:k1 * k2 * C(k3,2)tmp = k1 * k2 * (k3 * (k3 - 1) / 2) % 1000000007;ans += tmp;}}}}// 对结果取模,防止溢出ans %= 1000000007;cout << ans; // 输出最终结果return 0;
}

【运行结果】

4 
1
1
2
2
1
http://www.jsqmd.com/news/389908/

相关文章:

  • 题解:洛谷 P1149 [NOIP 2008 提高组] 火柴棒等式
  • 题解:洛谷 P3654 First Step (ファーストステップ)
  • 1.winform中App.config配置mssql连接字符串
  • where关键字
  • 题解:洛谷 P3392 涂条纹
  • 题解:洛谷 P1088 [NOIP 2004 普及组] 火星人
  • 题解:洛谷 P1706 全排列问题
  • 2026评测揭秘:三边封拉链袋哪些厂商值得信赖?包装袋/四边封包装袋/自立拉链袋/纹路袋,三边封拉链袋生产厂家有哪些 - 品牌推荐师
  • 真空吸盘实力厂家大揭秘:2026年行业优选推荐,国内口碑好的真空吸盘品牌口碑推荐榜贵磁设备专注行业多年经验,口碑良好 - 品牌推荐师
  • 题解:洛谷 P1157 组合的输出
  • 题解:洛谷 P2089 烤鸡
  • 题解:洛谷 P1036 [NOIP 2002 普及组] 选数
  • 题解:洛谷 P1618 三连击(升级版)
  • lanqiaoOJ 1020:阶乘约数 ← 整数唯一分解定理 + 约数个数定理
  • 题解:洛谷 P2241 统计方形(数据加强版)
  • 综述不会写?千笔,王者级的AI论文写作软件
  • 定稿前必看!更贴合继续教育的AI论文平台,千笔·专业论文写作工具 VS WPS AI
  • 08]delphi10.3剪贴板的图片,保存到文件
  • 评测2026年主流安检设备,揭秘可靠直销渠道,安检门/智能安检/安检仪/金属探测门/安检设备,安检设备源头厂家哪家好 - 品牌推荐师
  • 数据码农马年大吉
  • 定稿前必看!9个降AIGC工具测评:本科生降AI率必备指南
  • 导师推荐!继续教育论文神器 —— 千笔AI
  • 格式总出错?千笔AI,全民喜爱的AI论文写作软件
  • 新手也能上手 9个降AI率工具:研究生降AI率全维度测评
  • 生产环境VSCode中ESLint与Prettier冲突终极解决方案(90%开发者都踩过的坑)最佳实践与性能优化
  • 导师推荐 10个 AI论文写作软件:研究生毕业论文与科研写作必备工具测评
  • 吐血推荐! AI论文平台 千笔AI VS speedai,自考写论文必备神器!
  • 拖延症福音!降AI率平台 千笔AI VS PaperRed,自考党必备
  • AI岗位真的比网安岗位强多了?我们是否该“All in AI Agent”?——一场关于技术趋势、安全边界与职业选择的深度思辨
  • 用数据说话 AI论文写作软件 千笔ai写作 VS Checkjie 更贴合自考需求