「2021年TYWZ普及模拟题」多边形 待定题解

文章目录

题目描述

一个凸多边形具有非常多优秀的性质,它的任意内角小于或等于 18 0 。 180^。 180。 。

小 F 将 n n n 条边交给小 Y, 询问小Y这 n n n 条边能否围成一个凸 n n n 边形,小 Y 当然知道这道题的答案,但是她决定用这个问题考考你。

输入格式

输入文件的第一行,包含一个正整数 T T T,表示有 T T T 组测试数据,每组数据包含两行。

每组数据的第一行包含一个正整数 n n n,表示给定 n n n 条边。

每组数据的第二行包含 n n n 个正整数 a 1 a 2 ... a_1 a_2 \dots a1a2... ... a n \dots a_n ...an,以空格隔开,表示 n n n 条边的长度。

输出格式

输出 T T T 行,每行输出YESNO,输出YES表示可以围成一个凸多边形,输出NO表示不可以围成一个凸多边形。

样例

样例输入 1

复制代码
2
3
3 4 5
3
2 7 3

样例输出 1

复制代码
YES
NO

样例输入 2

复制代码
2
4
1 2 3 4
4
8 2 3 3

样例输出 2

复制代码
YES
NO

数据范围与提示

样例 1 1 1 说明:

第一组数据中的三条边显然可以构成一个直角三角形,因为 3 × 3 + 4 × 4 = 5 × 5 3 \times 3+4 \times 4=5 \times 5 3×3+4×4=5×5。

第二组数据中的三条边无法构成一个三角形,应为三角形的任意两条边之和大于第三边,而 2 + 3 < 7 2+3 < 7 2+3<7。

前置知识

思路与部分实现

完整代码

cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
        int n,x,maxn=-1,sum=0;
        scanf("%d",&n);
        while(n--){
            scanf("%d",&x);
            maxn=max(maxn,x),sum+=x;
        }
        if(sum-maxn>maxn)
        	printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}

文章小结

相关推荐
折哥的程序人生 · 物流技术专研5 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
玖玥拾6 小时前
C/C++ 基础笔记(十四)多态与模板编程
c语言·c++·多态·模板
想吃火锅10056 小时前
【leetcode】14.最长公共前缀js
算法·leetcode·职场和发展
Roann_seo%6 小时前
C++文件操作完全指南:从文本读写到二进制文件处理
开发语言·c++
坚果派·白晓明7 小时前
【鸿蒙PC】SDL3 适配:AtomCode + Skills 快速集成 NAPI 测试工具
c++·华为·ai编程·harmonyos·atomcode
云絮.7 小时前
数据库操作
数据库·mysql·算法·oracle
小林ixn7 小时前
LeetCode 206. 反转链表(迭代 + 递归详解)
算法·leetcode·链表
凡人叶枫8 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
凡人叶枫9 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
菜鸟‍9 小时前
LeetCode 1 27 和 704 || 两数之和 移除元素 二分查找
算法·leetcode·职场和发展