HDOJ-2039 三角形

本文介绍了一个简单的程序,用于判断给定的三边长度是否能够构成一个有效的三角形。程序通过比较三边长度来确定它们是否满足构成三角形的必要条件。

Problem Description
给定三条边,请你判断一下能不能组成一个三角形。

Input
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000;

Output
对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。

Sample Input
2
1 2 3
2 2 2
Sample Output
NO
YES

是不是觉得这题超简单,但你交后Wa了~是谁告诉你ABC是正整数的?。。。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
    int m;
    scanf("%d",&m);
    while(m--){
        double a,b,c;
        scanf("%lf%lf%lf",&a,&b,&c);
        if(a+b>c&&c+a>b&&b+c>a)
            printf("YES\n");
        else
            printf("NO\n");

    }
    return 0;
}
<think>嗯,用户想知道在杭电OJ(HDOJ)的第100题中,也就是题号从2000到2099之间,哪道题开始涉及到结构体排序。首先,我需要回忆一下这些题目的内容,或者查找相关资料。 结构体排序通常涉及到自定义排序规则,比如按照多个条件对结构体中的字段进行排序。在编程题中,这类问题常见于需要对一组数据进行特定规则排序的情况,比如学生成绩按分数和姓名排序,或者事件按时间排序等。 接下来,我需要回顾HDOJ的题目列表,特别是2000到2099题号范围内的题目。可能需要逐个查看这些题目,找出需要结构体排序的题目。不过,由于记忆有限,可能需要借助以往的解题经验或者在线资源来确认。 比如,HDOJ 2020题是绝对值排序,但这里可能只需要对数值进行绝对值处理后再排序,可能不需要结构体。HDOJ 2033题是关于时间相加的,可能也不涉及结构体。HDOJ 2040题是亲和数,可能也不涉及排序。 再往后的题目中,HDOJ 2076题是计算夹角,可能不需要结构体。HDOJ 2093题是考试排名,这个题目可能需要结构体,因为需要处理学生的多个属性(解题数和罚时),并根据这些属性进行排序。这可能是一个需要结构体排序的题目。 不过,我需要进一步确认题号。比如,HDOJ 2093的题目描述是否真的需要结构体。根据回忆,考试排名问题通常要求按解题数目从多到少,再按罚时从少到多排序,这就需要定义一个结构体存储每个学生的信息,然后自定义比较函数进行排序。因此,HDOJ 2093可能是一个涉及结构体排序的题目。 此外,HDOJ 2023题是求平均成绩,可能需要结构体来存储学生和课程的信息,但可能不需要排序。而HDOJ 2052题是图像旋转,可能不需要结构体。HDOJ 2065题是"红色病毒"问题,属于数学或递推,也不涉及结构体。 因此,在2000到2099范围内,HDOJ 2093可能是第一个需要结构体排序的题目。当然,可能还有其他题目更早涉及,比如HDOJ 2027统计元音可能需要结构体来存储各个元音的数量,但排序可能不是主要部分。需要进一步确认。 可能还需要检查HDOJ 2000到2099的列表,例如HDOJ 2039题是判断三角形,可能不需要结构体。HDOJ 2043题是密码安全性检查,也不涉及结构体。HDOJ 2054题是大数比较,可能也不需要结构体。 综上,HDOJ 2093考试排名应该是这个范围内较早涉及结构体排序的题目。用户可能需要从这道题开始练习结构体排序的应用。</think>在杭电OJ(HDOJ)的 **2000-2099** 题号范围内,涉及结构体排序的典型题目是 **HDOJ 2093(考试排名)**。以下是逐步说明: --- ### **1. 题目背景** **HDOJ 2093(考试排名)** 要求根据学生的比赛成绩进行排名。需要处理以下规则: - **解题数**从高到低排序。 - 若解题数相同,按 **总罚时** 从低到高排序。 - 若解题数和罚时都相同,按 **姓名** 字典序排序。 这种多条件排序需要定义结构体存储学生信息,并自定义排序规则。 --- ### **2. 结构体定义** 首先定义一个结构体存储每个学生的信息: ```cpp struct Student { string name; // 学生姓名 int solved; // 解题数 int penalty; // 总罚时 }; ``` --- ### **3. 自定义排序规则** 在C++中,通过自定义比较函数实现多条件排序: ```cpp bool compare(const Student &a, const Student &b) { if (a.solved != b.solved) { return a.solved > b.solved; // 解题数降序 } else if (a.penalty != b.penalty) { return a.penalty < b.penalty; // 罚时升序 } else { return a.name < b.name; // 姓名字典序升序 } } ``` --- ### **4. 题目关键点** - **输入处理**:需要解析每行输入中的解题时间和罚时。 - **数据存储**:使用结构体数组或`vector<Student>`存储所有学生信息。 - **排序调用**:使用`sort()`函数并传入自定义的`compare`函数。 --- ### **5. 其他可能涉及结构体排序的题目** 在2000-2099范围内,以下题目也可能涉及结构体排序: - **HDOJ 2023(求平均成绩)**:可能需要结构体存储学生多门课程的成绩,但排序不是核心。 - **HDOJ 2068(RPG的错排)**:不涉及结构体排序。 - **HDOJ 2080(夹角有多大II)**:无需结构体。 --- ### **总结** 建议从 **HDOJ 2093(考试排名)** 开始练习结构体排序。掌握该题后,可尝试更复杂题目(如多字段排序或动态条件排序)。其他结构体排序的经典题分布在 **2100+** 题号范围(如HDOJ 2138)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值