【C++】三角形(triangle)

题目描述

小魏有 3*n 根颜色两两不同的木棍,第i根的长度为a[i]。

小魏想把这3*n根木棍分成n组,每组三根,并且同一组的三根木棍可以组成一个三角形。

小魏想知道他有多少种不同的分组方案。认为两个分组方案是不同的,当且仅当两种方案组出来的三角形是不同的。

输入

第一行一个整数n。

        第二行n个整数a[i]。

输出

一行一个整数,表示方案数。

#include <cstdio>
#include <algorithm>
using namespace std;
int n, a[30], b[30];
int mx;
void dfs(int x)
{
	if (b[x])
	{
		dfs(x + 1);
		return;
	}
	if (x == n + 1) 
	{
		mx++;
		return;
	}
	for (int i = x + 1; i <= n; i++)
	{
		if (b[i] == 0) 
		{
			for (int j = i + 1; j <= n; j++)
			{
				if (b[j] == 0) 
				{
					if (a[x] + a[i] > a[j]) 
					{
						b[x] = b[i] = b[j] = 1;
						dfs(x + 1);
						b[x] = b[i] = b[j] = 0;
					}
				}
			}
		}
	}
}
int main() 
{
	scanf("%d", &n);
	n *= 3;
	for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
	sort(a + 1, a + n + 1);
	dfs(1);
	printf("%d", mx);
	return 0;
}

相关推荐

  1. C++】三角形(triangle)

    2024-02-01 06:34:01       24 阅读
  2. LeetCode //C - 611. Valid Triangle Number

    2024-02-01 06:34:01       15 阅读
  3. C#杨辉三角形

    2024-02-01 06:34:01       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 06:34:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 06:34:01       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 06:34:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 06:34:01       20 阅读

热门阅读

  1. Uni-app 如何上传文件, 使用的API是什么

    2024-02-01 06:34:01       39 阅读
  2. 华为网络设备:核心命令一览

    2024-02-01 06:34:01       34 阅读
  3. 设计模式全览:编程艺术的精髓!

    2024-02-01 06:34:01       26 阅读
  4. 设计模式——策略模式

    2024-02-01 06:34:01       29 阅读
  5. Spring Boot + Vue3 实现七牛云大视频上传

    2024-02-01 06:34:01       33 阅读
  6. 3D人体运动重建

    2024-02-01 06:34:01       42 阅读
  7. 【后端】HTTP

    2024-02-01 06:34:01       32 阅读
  8. 小程序接入企业微信「联系我」功能

    2024-02-01 06:34:01       40 阅读
  9. Visual Studio 和Clion配置Cocos2d-x环境

    2024-02-01 06:34:01       42 阅读
  10. unity 使用数字图片来代替数字0到9显示

    2024-02-01 06:34:01       30 阅读