早教吧作业答案频道 -->其他-->
C++程序编程Description麦兜是个淘气的孩子.一天,他在玩钢笔的时候把墨水洒在了白色的墙上.再过一会,麦兜妈就要回来了,麦兜为了不让妈妈知道这件事情,就想用一个白色的凸多边形把墙上的
题目详情
C++ 程序编程
Description 麦兜是个淘气的孩子.一天,他在玩钢笔的时候把墨水洒在了白色的墙上.再过一会,麦兜妈就要回来了,麦兜为了不让妈妈知道这件事情,就想用一个白色的凸多边形把墙上的墨点盖住.你能告诉麦兜最小需要面积多大的凸多边形才能把这些墨点盖住吗?现在,给出了这些墨点的坐标,请帮助麦兜计算出覆盖这些墨点的最小凸多边形的面积.Input 多组测试数据.第一行是一个整数T,表明一共有T组测试数据.每组测试数据的第一行是一个正整数N(0< N < = 105),表明了墨点的数量.接下来的N行每行包含了两个整数Xi和Yi(0<=Xi,Yi<=2000),表示每个墨点的坐标.每行的坐标间可能包含多个空格.Output 每行输出一组测试数据的结果,只需输出最小凸多边形的面积.面积是个实数,小数点后面保留一位即可,不需要多余的空格.Sample Input 2 4 0 0 1 0 0 1 1 1 2 0 0 0 1 Sample Output 1.0 0.0 麻烦帮帮忙咯
Description 麦兜是个淘气的孩子.一天,他在玩钢笔的时候把墨水洒在了白色的墙上.再过一会,麦兜妈就要回来了,麦兜为了不让妈妈知道这件事情,就想用一个白色的凸多边形把墙上的墨点盖住.你能告诉麦兜最小需要面积多大的凸多边形才能把这些墨点盖住吗?现在,给出了这些墨点的坐标,请帮助麦兜计算出覆盖这些墨点的最小凸多边形的面积.Input 多组测试数据.第一行是一个整数T,表明一共有T组测试数据.每组测试数据的第一行是一个正整数N(0< N < = 105),表明了墨点的数量.接下来的N行每行包含了两个整数Xi和Yi(0<=Xi,Yi<=2000),表示每个墨点的坐标.每行的坐标间可能包含多个空格.Output 每行输出一组测试数据的结果,只需输出最小凸多边形的面积.面积是个实数,小数点后面保留一位即可,不需要多余的空格.Sample Input 2 4 0 0 1 0 0 1 1 1 2 0 0 0 1 Sample Output 1.0 0.0 麻烦帮帮忙咯
▼优质解答
答案和解析
看一下这个程序可以不:
#include
#include
using namespace std;
struct Stu
{
int total, china, math, engl, ID;
};
int MyCompare(const void *e1, const void *e2)
{
Stu *p1 = (Stu*) e1; Stu *p2 = (Stu*) e2;
if(p1->total != p2->total)
return p1->total < p2->total;
if(p1->china != p2->china)
return p1->china < p2->china;
return p1->ID > p2->ID;
}
int main()
{
Stu stu[100];
int n, i;
cin >> n;
for(i = 0; i < n; i++){
cin >> stu[i].china >> stu[i].math >> stu[i].engl;
stu[i].ID = i + 1;
stu[i].total = stu[i].china + stu[i].math + stu[i].engl;
}
qsort(stu, n, sizeof(Stu), MyCompare);
for(i = 0; i < n; i++)
cout << stu[i].ID << " " << stu[i].total << endl;
return 0;
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你.
#include
#include
using namespace std;
struct Stu
{
int total, china, math, engl, ID;
};
int MyCompare(const void *e1, const void *e2)
{
Stu *p1 = (Stu*) e1; Stu *p2 = (Stu*) e2;
if(p1->total != p2->total)
return p1->total < p2->total;
if(p1->china != p2->china)
return p1->china < p2->china;
return p1->ID > p2->ID;
}
int main()
{
Stu stu[100];
int n, i;
cin >> n;
for(i = 0; i < n; i++){
cin >> stu[i].china >> stu[i].math >> stu[i].engl;
stu[i].ID = i + 1;
stu[i].total = stu[i].china + stu[i].math + stu[i].engl;
}
qsort(stu, n, sizeof(Stu), MyCompare);
for(i = 0; i < n; i++)
cout << stu[i].ID << " " << stu[i].total << endl;
return 0;
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你.
看了 C++程序编程Descrip...的网友还看了以下:
设A为n阶矩阵,证明:R(A+I)+R(A-I)>=n已知R(A)=R(kA),k≠0;R(A+B 2020-05-14 …
阿姨,我买一本笔记本和4枝钢笔共需要多少钱、、(题目要清楚)要让我懂得是什么意思小明去商店买笔记本 2020-05-21 …
i的i次方等于多少,写成x+yi的形式如题:i^i=?写成x+yi的形式,其中要求x和y都是实数. 2020-06-12 …
书法九势转笔,宜左右回顾,无使节目孤露.藏锋,点画出入之迹,欲左先右,至回左亦尔.藏头,圆笔属纸, 2020-06-18 …
一直z=(2+i)(1+1/i){i为虚数单位}则复数Z在复平面上所对应的点位于几象限我算的是3+ 2020-07-03 …
P=A(1+i)^-1+A(1+i)^-2+A(i+i)^-3+……A(1+i)^-n(1)将两边 2020-07-25 …
已知复数ω满足ω-4=(3-2ω)i(i为虚数单位),z=5/ω+|z-2|,若z的平方根为a=b 2020-08-02 …
一道挺难的数学题i*i=-1则x*x=-1可变为x=+i或-ii还具有以下性质:i=ii*i=-1i 2020-11-01 …
用捕虫网兜捕善于飞翔的昆虫时,使用捕虫网时应该()A.迎着昆虫飞翔的方向兜B.顺着昆虫飞翔的方向兜C 2020-11-10 …
保险精算题.设m>1,按从大到小的次序排列i,i(m),d,d(m)1、设m>1,按从大到小的次序排 2020-12-05 …