题解|拼三角

拼三角

解法:枚举,先枚举出三个,判断能否构成三角形,

1.如果为真,则判断剩下三个能否构成三角形,如果为真,则打印yes;如果为假,则重新枚举

2.如果为假,则重新枚举

3.如果枚举完了,也没有符合要求,则打印No。

但是上面这种会做很多重复的判断。我们可以先从判断能否构成三角形来进行优化:

一般,我们判断能否构成三角形——两边之和大于第三边,但是这样需要比较三次。其实我们可以用较小的两个数的和与第三个数进行比较,如果大于,则可以构成,反之则不能。这样一次判断,就满足了之前的三次判断。

所以我们可以先对数组进行排序,接着先枚举012,如果01小于2了,则就不需要枚举01和其他的数了,因为排序的原因。3肯定比2大。所以对于01来说,我们只需要判断012和345是否能否同时成立即可,如果可以,则yes,不可以枚举下一组。

下一组,枚举023,如果02小于3,则也不需要枚举45了,原因同上。所以只需要判断023和145

下一组,枚举034和125,下一组045和123

只要上面有一组成立,就yes,反之no。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector<int> nums(6);
int main()
{
    int t = 0;
    cin >> t;
    while (t--)
    {
        int i = 0;
        while (i < 6)
        {
            cin >> nums[i++];
        }
        sort(nums.begin(), nums.end());
        // 分四种情况讨论
        if (nums[0] + nums[1] > nums[2] && nums[3] + nums[4] > nums[5])
            cout << "Yes" << endl;
        else if (nums[0] + nums[2] > nums[3] && nums[1] + nums[4] > nums[5])
            cout << "Yes" << endl;
        else if (nums[0] + nums[3] > nums[4] && nums[1] + nums[2] > nums[5])
            cout << "Yes" << endl;
        else if (nums[0] + nums[4] > nums[5] && nums[1] + nums[2] > nums[3])
            cout << "Yes" << endl;
        else
            cout << "No" << endl;
    }
    return 0;
}

全部评论

相关推荐

3月刚开很多HC!!!!java笔试题目:用&nbsp;Python&nbsp;实现一个函数,用于计算斐波那契数列的第&nbsp;n&nbsp;项。以下&nbsp;Java&nbsp;代码片段是否存在问题?如果有,请指出并改正。简述&nbsp;C++&nbsp;中指针和引用的区别。实现一个二叉树的中序遍历算法,可使用递归或非递归方式。对于一个无序整数数组,使用快速排序算法对其进行排序,并分析该算法的时间复杂度和空间复杂度。设计一个算法,判断一个字符串是否为回文串,要求时间复杂度尽可能低。简述&nbsp;TCP&nbsp;三次握手和四次挥手的过程,并说明为什么连接建立是三次握手,而连接释放是四次挥手。一台主机的&nbsp;IP&nbsp;地址为&nbsp;192.168.1.100,子网掩码为&nbsp;255.255.255.0,它所在的网络地址和广播地址分别是什么?解释&nbsp;DNS&nbsp;的作用和工作原理。已知有两张表,学生表(student)包含字段学号(s_id)、姓名(s_name)、年龄(s_age),成绩表(score)包含字段学号(s_id)、课程号(c_id)、成绩(grade),写一个&nbsp;SQL&nbsp;语句查询年龄大于&nbsp;20&nbsp;岁的学生的姓名和他们的平均成绩。什么是数据库的事务?ACID&nbsp;特性分别代表什么含义?简述索引的作用以及在什么情况下不适合创建索引。进程和线程的主要区别是什么?在什么场景下适合使用多进程,什么场景下适合使用多线程?请描述操作系统中的页面置换算法有哪些,并简述&nbsp;LRU(最近最少使用)算法的原理。假设系统中有三个进程&nbsp;P1、P2、P3,它们分别需要资源&nbsp;R1、R2、R3,当前资源分配情况如下:P1&nbsp;占用&nbsp;R1&nbsp;并请求&nbsp;R2,P2&nbsp;占用&nbsp;R2&nbsp;并请求&nbsp;R3,P3&nbsp;占用&nbsp;R3&nbsp;并请求&nbsp;R1,请问系统是否处于死锁状态?为什么?如果是,应该如何解除死锁?二面:主要聊实习&nbsp;&nbsp;MongDB&nbsp;&nbsp;Mysql&nbsp;&nbsp;对mongdb的使用&nbsp;(只会用&nbsp;&nbsp;对存储数据的探讨&nbsp;&nbsp;定时任务生成报表&nbsp;使用分布式锁&nbsp;主意分布式时钟问题了解Dubbo吗还知道哪些数据库了解哪些新技术&nbsp;说了说推荐算法聊聊大模型&nbsp;对工作的帮助聊了聊信创&nbsp;&nbsp;&nbsp;达梦&nbsp;人大金仓数据库等给我讲了讲部门业务hr面顺丰科技25届校招内推启动!技术专场!【内推链接】https://campus.sf-express.com/m/?channel=29&amp;amp;amp;referCode=7BJ5G5#/newGraduatesList【内推码】7BJ5G5(招聘信息获取渠道选择“校园大使推荐”,加速进面,有问题随时回复~)招聘岗位:物流、供应链、大数据、算法、研发多个岗位招聘地点:深圳、武汉等即刻投递,offer速得!投递的uu留下姓名缩写+岗位♥ #春招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#实习#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#内推#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#秋招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
点赞 评论 收藏
分享
03-23 20:47
门头沟学院 C++
花了十来天去老校区跟同门一起互改毕业论文,现在就剩查重了,然后还要单独去找导师修改一次。这段时间没怎么学习了,只做了几个有时间限制的笔试和测评,这几次笔试编程题都只能做对一半左右,大厂小厂都是这样,而且还是按照自己的想法来做的,好像没咋用到代码随想录刷题的解法,不知道是刷了两遍不到是不够熟悉还是怎么回事。目前回溯动规贪心图论还没完全二刷完,接下来这段时间得继续刷起来了。还发现自己做编程题一个很大的问题就是操作字符串不熟练,尤其是字符串要分割转成数字之类的,很多时候明明知道解题思路但代码没写出来。还会因为粗心出一些问题,但学会了去打印结果来分析哪一步出问题了,这是个好的兆头。昨天去年毕业的师兄从厦门来找我们玩了,通宵打了一宿麻将,今天白天困得不行。还挺羡慕他这种生活状态的,一个月万把块,双休也不加班工作也不累,他说周末休息就追追剧打打游戏逗逗猫挺无聊的,但是这是我现在最想过的生活了!可能因为他对象还不能换工作去厦门一个人会有点孤单吧,不然两个人一起这样过周末还是非常惬意的,我也想快点过上这样的日子!最近找工作笔试学习真挺累的,好想像大四的时候那样毫无负担地玩,但现在是关键时刻还得再坚持一段时间!接下来就继续学习准备笔试面试,也就个把月了,加油!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务