洛谷P3799 妖梦拼木棒
题目链接
题目背景
上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来。
题目描述
有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法?
输入格式:
第一行一个整数n
第二行n个整数,a1,a2,……an(0
输出格式:
一行一个整数,对1e9+7取模
输入输出样例
输入样例#1:
4 1 1 2 2
输出样例#1:
1
说明
对于30%的数据 N<=5000
对于100%的数据 N<=100000
Code
组合排列题
#include <iostream>
#include <cstdio>#define C1(num) (num)
#define C2(num) ((num)*((num)-1)/2)
#define Mod 1000000007using namespace std;int n;
long long num[5005];
long long sum;int main()
{scanf("%d",&n);int using_t;for(int i=1;i<=n;i++){scanf("%d",&using_t);num[using_t]++;}for(int i=2;i<=5000;i++){for(int j=1;j<=i/2;j++)
//由于题目要求4根火柴棒,所以j只能到i/2,j+j=i。{int k=i-j;long long nowans=1;if(k!=j){if(num[i]>=2 && num[j]>=1 && num[k]>=1){nowans*=(C2(num[i]) % Mod);nowans%=Mod;nowans*=(C1(num[j]) % Mod);nowans%=Mod;nowans*=(C1(num[k]) % Mod); nowans%=Mod;sum+=nowans;}}else{if(num[i]>=2 && num[j]>=2){nowans*=(C2(num[i]) % Mod);nowans%=Mod;nowans*=(C2(num[j]) % Mod);nowans%=Mod;sum+=nowans;}}sum%=Mod;}}printf("%d",sum);
}
洛谷P3799 妖梦拼木棒相关推荐
- 洛谷[P3799 妖梦拼木棒] {暴力枚举} 奋斗的珂珂~
洛谷[P3799 妖梦拼木棒] {暴力枚举} 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案 ...
- 洛谷 P3799 妖梦拼木棒【枚举/组合数学】
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nnn 根木棒,现在从中选 444 根,想要组成一个正三角形,问有几种选法? 答案对 109+710^9+7109+7 ...
- 洛谷-P3799 妖梦拼木棒
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nn 根木棒,现在从中选 44 根,想要组成一个正三角形,问有几种选法? 答案对 10^9+7109+7 取模. 输入格 ...
- 【题解】【算法】- 洛谷 - P3799 妖梦拼木棒(组合数学)
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案对 109 + 7 取模. 输入格式 第一行一 ...
- 洛谷P3799 妖梦拼木棒 题解
//简单的思路:四根必有两根相同,所以咱们就先选两根组合成第三根,确定另外相同的两根的长度 //分为两种情况,一.预选两根相同长度.二.预选两根不同长度. //所有情况是预选*(确定的另外两根) #i ...
- 洛谷 P3799 妖梦拼木棒
题目 这道题主要考组合数学,一开始我没注意数据范围,傻乎乎地模拟,结果复杂度爆炸10个TLE.这道题是算出来的. 思路是用一个栈把相同长度个数超过2的木棍用栈保存下来,同时用一个数组存下所有长度木棍的 ...
- [luogu P3799] 妖梦拼木棒
[luogu P3799] 妖梦拼木棒 题目描述 解决过程 思路 代码 感想 题目描述 点击此处查看题目描述 解决过程 暴力不多阐述,很显然是无法AC的 解决此题需要用到组合数 思路 这道题要求拼成等 ...
- P3799 妖梦拼木棒——枚举+组合数学
妖梦拼木棒 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nnn 根木棒,现在从中选 444 根,想要组成一个正三角形,问有几种选法? 答案对 109+710^9+7 ...
- 洛谷 P3797 妖梦斩木棒 解题报告
P3797 妖梦斩木棒 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的\(n\)段.现在这个木棒可以看做 ...
最新文章
- android开机启动代码
- TCP为什么是3次握手?
- 华为eNSP和SecureCRT连接乱码问题
- HTTP协议基础知识点点滴滴
- Comperhend the OP-sizeof deeply!
- 串口调试助手-打开报错
- SpringCloud 搭建项目环境、创建 Dept 微服务、客户端调用微服务
- 2022将至,前端程序员们应该一起放个烟花庆祝一下,走起
- JS之字符串连接方法join
- Http协议之报文·方法·状态码
- 29 FI配置-财务会计-外币评估-分配到评估范围和会计核算原则
- python print输出字符串报错
- 07. (附加)用两个队列实现栈(C++版本)
- Java项目案例-猜数小游戏和多级菜单系统.....
- 火狐firebug和firepath插件安装方法
- Windows下LaTeX安装教程与新手入门
- 第一次的爬虫小试(爬取网页文本)
- pcie总线与cpci总线_PCI和CPCI
- HP打印机 定时打印激活打印机(针对某些打印机需要激活才能打印的情况)
- 强化学习-Q-Learning算法
热门文章
- JS instanceof用法
- 记一次k8s的pod间网络无法访问解决
- python中判断生肖和星座哪个准_生肖与星座配对,生肖和星座配对,哪个准啊
- 低调做人是步入社会的必然要求
- 微博拿下NBA,互联网巨头布局体育产业如何“绕开”版权费?
- 头条号三农领域原创视频日赚1000,自媒体领域选择哪个好?
- NOI2019退役记
- solidworks安装问题:安装管理程序无法在此注册表位置生成注册表项: HKLM\Software\Wow6432Node\SolidWorks
- Github下载加速最简单方法
- Discuz!论坛运营之增加创始人的方法