题解 洛谷P3799 【妖梦拼木棒】
一道水题 (还是做了一个小时,我太菜了
基本思路:
题里面说,4根棍子拼成一个正三角形(等边三角形)
若设这四根棍子长度为\(a,b,c,d\)且\(a≥b>c≥d\)
那很容易得到 (真的很容易):
\(a=b=c+d\)
自然,我们只需枚举\(a\)的长度和\(c\)的长度就行了
长度最长才5k,木棍用桶按长度装一下,遍历的时候也方便。
代码要好好看完啊kora
#include <bits/stdc++.h>
#define c1(a) (a)//带参宏定义,本题不必写函数
#define c2(a) ((a)*((a)-1)/2)
using namespace std;
const int mode=1000000007;
int aaa[5010];//桶
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);//io流解绑
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int k;
		cin>>k;
		aaa[k]++;//往桶里扔
	}
	int ans=0;
	for(int a=2;a<=5000;a++)
   {
			for(int c=1;c<=a/2;c++)//c最大只能到a的一半
			{
				int d=a-c;//把d算出来判定相等
				if(d!=c&&aaa[a]>=2&&aaa[c]>=1&&aaa[d]>=1)//c d不同
				{
					ans+=((c2(aaa[a])%mode)*(c1(aaa[c])%mode)*(c1(aaa[d])%mode))%mode;
				}
				else if(d==c&&aaa[a]>=2&&aaa[c]>=2)//c d相同
				{
					ans+=((c2(aaa[a])%mode)*(c2(aaa[c])%mode))%mode;
				}
				ans%=mode;
			}
	}
	cout<<ans%mode;//多模几次总没问题的
	return 0;
}
												
											题解 洛谷P3799 【妖梦拼木棒】的更多相关文章
- 洛谷P3799 妖梦拼木棒
		
P3799 妖梦拼木棒 53通过 345提交 题目提供者orangebird 标签 难度普及/提高- 时空限制1s / 128MB 提交 讨论 题解 最新讨论更多讨论 暂时没有讨论 题目背景 上道 ...
 - luogu P3799 妖梦拼木棒
		
二次联通门 : luogu P3799 妖梦拼木棒 /* luogu P3799 妖梦拼木棒 用一个桶存下所有的木棒 美剧两根短的木棒长度 后随便乘一乘就 好了.. */ #include <a ...
 - 洛谷  P3797 妖梦斩木棒 解题报告
		
P3797 妖梦斩木棒 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的\(n\)段.现在这个木棒可以看做 ...
 - 洛谷P3797 妖梦斩木棒
		
P3797 妖梦斩木棒 题目背景 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的n段.现在这个木棒可以看 ...
 - P3799 妖梦拼木棒 (组合数学)
		
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法? 输入输出格式 输入格式: 第一行一个整数n 第二行n个整数 ...
 - 洛谷 P3797 妖梦斩木棒
		
https://www.luogu.org/problem/show?pid=3797 题目背景 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了 ...
 - AC日记——妖梦拼木棒 洛谷 P3799
		
妖梦拼木棒 思路: 神特么题: 代码: #include <bits/stdc++.h> using namespace std; #define mod 1000000007LL int ...
 - luoguP3799 妖梦拼木棒 [组合数学]
		
题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法? 输入输出格式 输入格式: 第一行一个整数n 第二行n个整数 ...
 - luogu3799 妖梦拼木棒
		
题目大意 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法?木棒长度都<=5000. 题解 根据容斥原理,三角形两条边分别由长度相等的单根木棒组成,另一条边由两条小于该边长的木棒构 ...
 
随机推荐
- 加密模块hashlib模块(* *)
			
用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 越往后加密算法越复杂,这些算法都是不可逆的,MD5 算法 ...
 - ORACLE在linux下的启动方法
			
一.启动方法 方法1: Sql代码 cd $ORACLE_HOME/bin #进入到oracle的安装目录 ./dbstart #重启服务器 ./lsnrctl start #重启监听器 ---- ...
 - Maven常见异常及解决方法---测试代码编译错误
			
[ERROR] Please refer to E:\maven\web_nanchang\target\surefire-reports for the individual test result ...
 - java_内部类、匿名内部类的使用
			
内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类. 内部类的分类 成员内部类,类定义在了成员位置 (类中方法外称为成员位置) 局部内部类,类定义在方法内 成员内部类 ...
 - C#LeetCode刷题之#242-有效的字母异位词(Valid Anagram)
			
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4040 访问. 给定两个字符串 s 和 t ,编写一个函数来判断 ...
 - HTML基础-05
			
字体 文本颜色:color:red;字体分类: 衬线字体serif --字体宽度各异,有衬线 --Times.Georgia.宋体 无衬线字体sans-serif --字体宽度各异,无衬线 --Hel ...
 - CPF 入门教程 - 样式和动画(三)
			
CPF NetCore跨平台UI框架 系列教程 CPF 入门教程(一) CPF 入门教程 - 数据绑定和命令绑定(二) CPF 入门教程 - 样式和动画(三) 用样式可以对内部元素进行批量设置属性. ...
 - Spring Boot 教程 - MyBatis-Plus
			
1. Mybatis-Plus简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 为什么说Myba ...
 - Kubernetes实战总结 - 自定义Prometheus
			
一.概述 首先Prometheus整体监控结构略微复杂,一个个部署并不简单.另外监控Kubernetes就需要访问内部数据,必定需要进行认证.鉴权.准入控制, 那么这一整套下来将变得难上加难,而且还需 ...
 - 【转载】PyChram简单使用教程
			
原文链接:https://www.cnblogs.com/yamei/p/5519818.html 一.PyChram下载官网:http://www.jetbrains.com/pycharm Win ...