牛油们,这道笔试题咋做了

有N条线段,长度分别为a[1]-a[N]。现要求你计算这N条线段最多可以组合成几个直角三角形,每条线段只能使用一次,每个三角形包含三条线段。

输入描述:

第一行输入一个正整数T(1 <= T <= 100),表示有T组测试数据。

对于每组测试数据,接下来有T行,每行第一个正整数N,表示线段个数,(3<=N<20),接着是N个正整数,表示每条线段长度,(0<a[i]<100)。
全部评论
这个数据量一眼暴力能解 20的三次×一百 数量级不高
点赞 回复 分享
发布于 2023-05-23 15:05 陕西
一眼三数之和的模板
点赞 回复 分享
发布于 2023-03-24 21:14 湖北
void backTrace(const vector<int> &nums, vector<bool> &used, int counter, int num_edge, int &max_value, int current_sum) { if(num_edge == 3) { num_edge = 0; counter ++; current_sum = 0; max_value = std::max(counter, max_value); } int n = nums.size(); for(int i = 0; i < n; ++i) { if(!used[i] &&(num_edge < 2 || (num_edge == 2 && current_sum == nums[i]))) { used[i] = true; backTrace(nums, used, counter, num_edge + 1, max_value, current_sum + nums[i]); used[i] = false; } } } int rightTriangle(vector<int> &nums) { int n = nums.size(); vector<bool> used(n, false); for(int i = 0; i < n; ++i) { nums[i] = nums[i] *nums[i]; } int max_value = INT_MIN; backTrace(nums, used, 0, 0, max_value, 0); return max_value; }
点赞 回复 分享
发布于 2023-03-24 18:11 上海
我考的时候没全部ac
点赞 回复 分享
发布于 2023-03-24 15:03 山西

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务