题目链接:传送门

知识点:

(1)三个点,三角形求面积公式

(2)精度问题:

double 15-16位(参考文章

float 6-7位

long long 约20位

int 约10位

unsigned int 是int的两倍(参考文章

(3)nth_element()函数

思路:一开始想直接暴力求面积,然后面积排序,后来有发现面积不能是0,可以重复,

然后排序求出第k大的值,结果没注意double的位数不能精确到达到18位,然后又想四舍五入,

对尾数进行了处理,还是没过。看来题解才发现最后的精度还可以分开写,get到了。

还有·就是nth_element函数的使用,排序的耗时太多,我后来选择用快排,结果还是超时了,可能是递归

太多次了,而且对全部数据排序费时,后来改用STL就行了,今后还要多看看STL。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = ;
typedef long long LL;
struct Node{
LL x,y;
}cur[maxn];
LL vc[];
void quick_sort(int l,int r)
{
int i=l,j=r;
LL tmp=vc[l];
if(l>=r) return ;
while(i!=j)
{
while(i<j&&vc[j]<=tmp) j--;
if(j>i) vc[i]=vc[j];
while(i<j&&vc[i]>=tmp) i++;
if(i<j) vc[j]=vc[i];
}
vc[i]=tmp;
quick_sort(l,i-);
quick_sort(i+,r);
}
int main(void)
{
int n,k,i,j,l,t;
double tp;
LL cc;
scanf("%d",&t);
while(t--)
{
memset(cur,,sizeof(cur));
memset(vc,,sizeof(vc));
scanf("%d%d",&n,&k);
for(i=;i<n;i++) scanf("%lld%lld",&cur[i].x,&cur[i].y);
int pos=;
for(i=;i<n;i++)
for(j=i+;j<n;j++)
for(l=j+;l<n;l++)
{
cc=cur[i].x*cur[j].y+cur[j].x*cur[l].y+cur[l].x*cur[i].y-
(cur[i].x*cur[l].y+cur[j].x*cur[i].y+cur[l].x*cur[j].y);
if(cc<) cc=-cc;
if(cc) vc[pos++]=cc;
} nth_element(vc,vc+pos-k,vc+pos);
cc=vc[pos-k];
if(cc%==)
{
printf("%lld.00\n",cc/);
}
else
{
printf("%lld.50\n",(cc-)/);
}
}
return ;
}

牛客训练二:处女座的签到题(STL+精度+三角形求面积公式)的更多相关文章

  1. 牛客网 Java 工程师能力评估 20 题 - 详解

    牛客网 Java 工程师能力评估 20 题 - 详解 不知在看博客的你是否知道 牛客网,不知道就太落后了,分享给你 : 牛客网 此 20 题,绝对不只是 20 题! 免责声明:本博客为学习笔记,如有侵 ...

  2. 牛客网数据库SQL实战解析(51-61题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  3. 牛客网数据库SQL实战解析(31-40题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  4. 牛客网数据库SQL实战解析(21-30题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  5. 牛客网数据库SQL实战解析(11-20题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  6. 牛客网数据库SQL实战解析(1-10题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  7. 2019牛客多校第八场 F题 Flowers 计算几何+线段树

    2019牛客多校第八场 F题 Flowers 先枚举出三角形内部的点D. 下面所说的旋转没有指明逆时针还是顺时针则是指逆时针旋转. 固定内部点的答案的获取 anti(A)anti(A)anti(A)或 ...

  8. 2020牛客多校第八场K题

    __int128(例题:2020牛客多校第八场K题) 题意: 有n道菜,第i道菜的利润为\(a_i\),且有\(b_i\)盘.你要按照下列要求给顾客上菜. 1.每位顾客至少有一道菜 2.给顾客上菜时, ...

  9. 牛客网数据库SQL实战解析(41-50题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

随机推荐

  1. TZOJ 2648 小希的迷宫(并查集)

    描述 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道 ...

  2. jsplumb踩坑

    一,,关于连线器label 我们全局设置中可以用 getInstance 实例化新对象 也可以通过 importDefaults 实例化新对象 当我想要给连线器上添加标签  每个连线器上的标签都不一样 ...

  3. 完全卸载jdk

    完全卸载jdk  如(卸载jdk1.7.0_80),  当卸载jdk时出现删除信息不全,导致无法安装,可通过此方法实现完全卸载. 1.打开系统运行输入regedit(注册表)分别查找以下路径  (1) ...

  4. u-boot之怎么实现分区

    启动参数bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0中kernel在哪定义,为什么可以直接引用?针对这个问题展开思考最终定位到 ...

  5. u-boot之start_armboot函数分析

    在分析start.S文件过程中提到过,最后从汇编跳到C函数执行的是start_armboot函数,位于lib_arm\board.c文件下,它的执行流程图如下,截图来源于<嵌入式LINUX应用开 ...

  6. c#dev tabcontrol 切换页面时注意的问题

    先加一个代码 public void SetXtraTabPageVisible(DevExpress.XtraTab.XtraTabControl xtraTabControl, bool iIsV ...

  7. elasticsearch权威指南

    elasticsearch权威指南 https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/

  8. NGS基础 - 高通量测序原理

    NGS基础 - 高通量测序原理 原创: 赑屃 生信宝典 2017-07-23 NGS系列文章包括NGS基础.转录组分析.ChIP-seq分析.DNA甲基化分析.重测序分析五部分内容. NGS基础系列文 ...

  9. PHP Cron Expression Parser ( LARAVEL )

       The PHP cron expression parser can parse a CRON expression, determine if it is due to run, calcul ...

  10. [Hbase]Hbase章1 Hbase框架及基本概念

    Hbase框架介绍 HBase是一个分布式的.面向列的开源数据库. 不同点: l  和一般的关系数据库不同,hbase是一个适合于非结构化数据存储的数据库. l  Hbase是基于列而不是基于行的模式 ...