暴力枚举——妖梦拼木棒
暴力枚举——妖梦拼木棒
题目背景
上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来。
题目描述
有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法?
答案对 109 + 7 取模
输入格式
第一行一个整数 n。
第二行 n 个整数,第 i 个整数 ai 代表第 i 根木棒的长度。
输出格式
一行一个整数代表答案
输入输出样例
输入样例
4
1 1 2 2
输出样例
1
说明/提示
数据规模与约定
- 对于 30% 的数据,保证 n ≤ 5 × 103。
- 对于 100% 的数据,保证 1 ≤ n ≤ 105,0 ≤ ai ≤ 5 × 103。
分析
假设选取的四根木棒的长度分别为 a,b,c,d,
因为要得到正三角形,所以可以得到等式:a = b = c + d (c ≤ d),
将长度为 i 的木棒根数存放在 s[i] 中,
若 c = d,则这种情况的个数为:
若 c 不等于 d,则这种情况的个数为:
将结果相加取余即可得到最后的答案。
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int f[100005],s[5005],n,cnt=0;int main()
{cin>>n;memset(s,0,sizeof(s));for(int i=0;i<n;i++){cin>>f[i];s[f[i]]++; // 记录每种长度木棒的根数 }for(int a=2;a<=5000;a++){for(int c=1;c<=a/2;c++){ // c 最大不会超过 a/2 int d=a-c;if(c==d&&s[a]>=2&&s[c]>=2){cnt+=(s[a]*(s[a]-1)/2)*(s[c]*(s[c]-1)/2)%mod;} else if(c!=d&&s[a]>=2&&s[c]>=1&&s[d]>=1){cnt+=((s[a]*(s[a]-1))/2)*s[c]*s[d]%mod;}cnt=cnt%mod;}}cout<<cnt<<endl;return 0;
}
暴力枚举——妖梦拼木棒相关推荐
- 组合枚举——妖梦拼木棒(洛谷 P3799)
题目选自洛谷P3799 有了这些铺垫以后,我们再来看这道题 要从nn根木棒中选出44根,使他们能组成一个正三角形. 简单的来说,就是先选出两根一样的,在选出两根使这两根的长度之和与先前选出的相同 那么 ...
- 洛谷[P3799 妖梦拼木棒] {暴力枚举} 奋斗的珂珂~
洛谷[P3799 妖梦拼木棒] {暴力枚举} 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案 ...
- P3799 妖梦拼木棒——枚举+组合数学
妖梦拼木棒 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nnn 根木棒,现在从中选 444 根,想要组成一个正三角形,问有几种选法? 答案对 109+710^9+7 ...
- [luogu P3799] 妖梦拼木棒
[luogu P3799] 妖梦拼木棒 题目描述 解决过程 思路 代码 感想 题目描述 点击此处查看题目描述 解决过程 暴力不多阐述,很显然是无法AC的 解决此题需要用到组合数 思路 这道题要求拼成等 ...
- 洛谷 P3799 妖梦拼木棒【枚举/组合数学】
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nnn 根木棒,现在从中选 444 根,想要组成一个正三角形,问有几种选法? 答案对 109+710^9+7109+7 ...
- P3799 妖梦拼木棒【暴力枚举、组合数】
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nn根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案对 10^9+7 取模. 输入格式 第一行一个 ...
- luoguP3799 妖梦拼木棒 [组合数学]
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法? 输入输出格式 输入格式: 第一行一个整数n 第二行n个整数 ...
- 妖梦拼木棒(组合数)
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 n 根木棒,现在从中选 44 根,想要组成一个正三角形,问有几种选法? 答案对 10^9+7 取模. 输入格式 第一行一 ...
- P3799 妖梦拼木棒 (组合数学)
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法? 输入输出格式 输入格式: 第一行一个整数n 第二行n个整数 ...
最新文章
- typora背景变黑
- BI推荐8款优秀的app
- 七十一、Python | Leetcode字符串系列(上篇)
- iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)
- XCode中设置字体大小
- java 可忽略参数_如何使用“&var =”忽略URL参数
- Android应用开发—Android 消息处理机制:HandlerMessage
- mysql中订单产品名,Ecshop后台订单列表增加”商品名”检索字段
- 为RedHat系统安装发布版的PostgreSQL数据库
- 斯坦福密码学-2-流密码steam_ciphers
- python Django中文文档
- 痞子衡嵌入式:ARM Cortex-M内核那些事(3.2)- 安全模块看特性(M23/33/35P)
- nginx静态图片路径映射
- Unity模拟经营类游戏Demo部分代码及技术总结
- 基于java点播影院运营系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
- 电脑桌面删除的文件怎么找回?
- keyshot Pro for Mac(3D渲染和动画制作)兼容big sur
- Torch.arange函数详解
- 利用74LS373对 LED 和数码管分别进行控制,数码管显示所亮 LED 的位置
- 网易企业邮箱子邮箱发送邮件
热门文章
- RS2022/云检测:考虑域偏移问题的卫星图像半监督云检测Semi-Supervised Cloud Detection in Satellite Images by Considering the
- 实时股票数据接口大全
- Service启动泄露异常:android.app.ServiceConnectionLeaked
- 元素 tx:annotation-driven 的前缀 tx 未绑定
- unity塔防游戏怪物转向_皇家冲冲冲游戏下载-皇家冲冲冲游戏安卓版 v1.0.2090
- 1089A--Lazyland
- Python学习8:助学贷款额度计算(python123)
- C语言判断中英文输入
- android实现来电动画,华为来电动画app-华为来电动画(透明来电秀)安卓版-幻想游戏网...
- 2019云栖大会丨数字冰雹诠释行业大数据可视决策