牛客训练二:处女座的签到题(STL+精度+三角形求面积公式)
题目链接:传送门
知识点:
(1)三个点,三角形求面积公式
(2)精度问题:
double 15-16位(参考文章)
float 6-7位
long long 约20位
int 约10位
unsigned int 是int的两倍(参考文章)
思路:一开始想直接暴力求面积,然后面积排序,后来有发现面积不能是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+精度+三角形求面积公式)的更多相关文章
- 牛客网 Java 工程师能力评估 20 题 - 详解
牛客网 Java 工程师能力评估 20 题 - 详解 不知在看博客的你是否知道 牛客网,不知道就太落后了,分享给你 : 牛客网 此 20 题,绝对不只是 20 题! 免责声明:本博客为学习笔记,如有侵 ...
- 牛客网数据库SQL实战解析(51-61题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(31-40题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(21-30题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(11-20题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(1-10题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 2019牛客多校第八场 F题 Flowers 计算几何+线段树
2019牛客多校第八场 F题 Flowers 先枚举出三角形内部的点D. 下面所说的旋转没有指明逆时针还是顺时针则是指逆时针旋转. 固定内部点的答案的获取 anti(A)anti(A)anti(A)或 ...
- 2020牛客多校第八场K题
__int128(例题:2020牛客多校第八场K题) 题意: 有n道菜,第i道菜的利润为\(a_i\),且有\(b_i\)盘.你要按照下列要求给顾客上菜. 1.每位顾客至少有一道菜 2.给顾客上菜时, ...
- 牛客网数据库SQL实战解析(41-50题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
随机推荐
- Rabbitmq基本使用 SpringBoot整合Rabbit SpringCloud Stream+Rabbit
https://blog.csdn.net/m0_37867405/article/details/80793601 四.docker中使用rabbitmq 1. 搭建和启动 使用地址:rabbitm ...
- C#判断文件和文件夹是否存在 不存在则创建
using System.IO;string path = @"D:\accountDaoRu\"; if (Directory.Exists(path) == fa ...
- swift - 本地通知2 - 啰嗦版
1. import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var windo ...
- [leetcode]161. One Edit Distance编辑步数为一
Given two strings s and t, determine if they are both one edit distance apart. Note: There are 3 pos ...
- console框脱离eclipse窗口
解决方案: 直接将视图重置. 在eclipse主窗口的最上层选项中,点击“window”选项,找到其中的“Reset Perspective”选项,点击确认即可.即视图重置.
- bug定位
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- Http方式下载文件
代码: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System ...
- MyEclipse中抽取接口、父类
选中要抽取接口的类-------->Refactor-------->Extact Interface-------->填写抽取的接口名-------->选择要抽取的方法(一般 ...
- python 面向对象编程 之 析构方法
析构方法:当对象在内存中被释放的时候,自动触发执行 如果产生的对象仅仅只是用户级别的, 那么无需定义__del__,如果对象还会向操作系统发生系统调用, 即一个对象有用户级别与内核级两种资源, 比如打 ...
- 码代码的小女孩(来自noip贴吧)
天冷极了,下着雪,又快黑了.这是NOIP的前夜.在这又冷又黑的晚上,一个衣衫破烂的小女孩在机房敲着代码.她从班里逃出来的时候还拿着一本算导,但是有什么用呢?那是一本很破旧的书--那么大,一向是她妈妈垫 ...