题目链接:传送门

知识点:

(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. Could not get lock /var/lib/dpkg/lock更新问题

    发生于apt-get update或apt update时. 常见手段,先试试: sudo rm /var/lib/dpkg/lock sudo rm /var/lib/apt/lists/lock ...

  2. scrapy的调试和环境安装技巧

    1,先在settings中把ROBOTSTXT_OBEY = False 在主目录下面新建main文件 __autor__ = 'zhouli' __date__ = '2018/11/3 22:39 ...

  3. os & sys

    os os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.c ...

  4. day 06 列表去重, 数据类型的补充,编码,深浅copy

    因为重要,所以放前面 列表去重 l1 = [1, 2, 3, 4, 5] l2 = [3, 4, 5, 6, 7] set = list(set(l1 + l2)) # set自动去重,然后变成lis ...

  5. linux下svn版本控制的常用命令大全

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...

  6. golang语言中os/signal包的学习与使用

    package main; import ( "os" "os/signal" "fmt" ) //signal包中提供了两个函数 //No ...

  7. Linux下查看系统启动 、运行以及安装时间

    1.uptime命令  例子显示已启动13天 当前用户一个 [root@localhost-live version-build-related]# uptime :: up days, :, use ...

  8. Codeforces55D Beautiful numbers

    原题链接 虽然依旧是套模板,但是因为我太弱了,不会建状态,所以去看了题解.. 这里就直接引用我看的题解吧,写的不错的. 题解 //我的代码 #include<cstdio> #includ ...

  9. centos 6.5 上安装 nvm

    NVM 重磅推出NVM curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash Clos ...

  10. centos 7下安装mysql

    可参考: http://blog.csdn.net/xyang81/article/details/51759200 1.去mysql官方网站查询最新的版本: 2.运行指令: wget http:// ...