首页 > 拼三角
头像 sunrise__sunrise
发表于 2021-03-22 11:47:54
写在前沿:这场小白赛难度不大,但是模拟题太多太多了,码量巨大,并不是很喜欢。 因为模拟太多赛后进行代码改良许多参考了码量很少的hx073269的代码。 A、拼三角 组给出个数,询问能不能构成两个三角形。 三种做法都是暴力,不可以通过去比较更小的三个和更大的三个,这里给出出题人的例子。 3 8 12 展开全文
头像 New_Sun
发表于 2021-03-21 00:59:01
解题思路:对于输入的数字a可以将其看成a个1,如果可以对1进行合并成2,2合并成4,以此类推,能尽量多的合并则可以使得减去的次数最少。对于第一次循环,如果a是奇数则可以将a-1后的1全部合并为2,等价于第一次减去1后,下次减去的必是2,如果a是偶数则将a-2后面的1全部合并为2,等价于第一次减去1, 展开全文
头像 BeauWill
发表于 2026-05-22 01:58:01
写三个循环或者dfs枚举六选三判断即可。为了方便,我直接用的stl全排列枚举,这样就不用写三个循环或者dfs了,虽然时间复杂度会升至O(n!),但是n仅为6比较小,对于此题完全可以解决。每次枚举到的时候,我们不妨取前三个是一个“三角形”,后三个是一个“三角形”,看这两“三角形”是否合法即可。总的时间 展开全文
头像 Xiettt
发表于 2026-05-22 09:48:17
#include <iostream> #include<algorithm> #include<vector> using namespace std; void solve() {//状压枚举mask 当检测到mask中有三个1 时check 分离出位数为1 展开全文
头像 飞鸢泛惊鸿
发表于 2026-05-22 11:08:52
import sys from itertools import combinations input=sys.stdin.readline def solve(): nums=[*map(int,input().split())] for i in combinations(nu 展开全文
头像 织春秋
发表于 2026-05-22 21:39:26
/* 第一次写题解,不当之处请多多指教 1.WA 我一开始看到题目认为题目是很简单的,sort后判断0+1>2,3+4>5结果WA了 才想到可能有2 3 5 5 5 6组成256、355这种类型的 2.懒惰 然后想到了暴力,但存在6*5*4/3/2/1/2=10种可能,我懒得 展开全文
头像 あおいSakura
发表于 2021-04-26 20:36:06
拼三角 题目链接:nowcoder 219046 到主站看:https://blog.csdn.net/weixin_43346722/article/details/116171759 题目大意 给你 6 个数,分你能不能分成两组各三个数,使得每组以这三个数为边长都可以构成三角形。 思路 就直接暴 展开全文
头像 小男娘
发表于 2026-05-22 00:39:49
嗯枚举就可以了喵~ #include <algorithm> #include <array> #include <iostream> using namespace std; int a[6]; bool Check(int x, int y, int z) 展开全文
头像 腌萝卜干
发表于 2026-05-22 15:04:56
直接枚举即可 #include <bits/stdc++.h> #define x first #define y second #define all(x) x.begin(), x.end() #define vec1(T, name, n, val) vector<T> 展开全文
头像 yx5932
发表于 2025-12-18 11:29:51
三角形的判定条件是:任意两边之和大于第三边(简化为:排序后,最短两边之和大于最长边)。 要从6根棍子里挑选出3根,共有C63=20种不同的方案。 若使用暴力法,则有三层for循环,用于选出3根棍子的组合: def is_triangle(sticks): """判断3根棍子能否组成三角形(s 展开全文

等你来战

查看全部