牛客第二场-处女座的签到题-毒瘤题-STL的nth_element()

量化交易零基础入门教程 特点 从零开始教编程。靠谱的量化交易学习资源稀少,且具有不讲编程、代码较难、过多等不适合新手等问题,本教程中则会从零开始教编程,解决量化入门过难过编程门槛这一问题。 量化与编程相结合。本教程不仅会教编程,而且会尽量结合量化情景,减少“我要做量化交易为什么要看这些用来培训程序员的东西”的愤懑。 简易精炼,快速入门。尽量只讲最核心最常用的知识,助你快速摆脱想学习量化却处处陌生不知所措的茫然的新手阶段。 读前说明 文后会有自测与自学,包括一些额外的延伸自学内容以及稍有难度的自测题目。 最最最基础的股票. 阅读详情
平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多少?

输入描述:

第一行T,表示样例的个数。
对于每一组样例,第一行两个整数n和k,
接下来n行,每行两个整数x,y表示点的坐标
T<=80
3<=n<=100
-109<=x,y<=109
对于每一组样例,保证任意两点不重合,且能构成的三角形的个数不小于k

输出描述:

对于每一组样例,输出第k大三角形的面积,精确到小数点后两位(四舍五入)。
示例1

输入

复制
1
4 3
1 1
0 0
0 1
0 -1

输出

复制
0.50

说明

样例中一共能构成3个三角形,面积分别为0.5,0.5,和1,面积第3大的为0.5

首先这道题要用到平面向量求三角形面积的公式,有(x1,y1),(x2,y2),(x3,y3)三个点,则他们组成的三角形(无法组成三角形结果就是0)的面积是S = abs( (x2-x1)(y3-y1) - (x3-x1)(y2-y1))/2.最后要四舍五入,其实是在迷惑你,结果是整数,/2的结果,小树部分要么是0.50,要么是0.00,判断一下他是技术还是偶数就可以了。
最后也就是最难得地方就是复杂读的问题,求第k大的数,如果直接对所有的排序然后输出结果,肯定超时。
如果用优先队列,也会超时。
合理居然要用到,STL的nth_element()函数。
STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end)
方法可以使第n小元素处于第n位置(从0开始,其位置是下标为 n的元素),
并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,
但不能保证他们是有序的
最后送上AC code:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<set>
#include<stack>
#include<queue>
#include<map>
#include<cstring>
#include<string>
#include<cmath>

using namespace std;

typedef long long LL;

#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
#define mem(a,b) memset(a,b,sizeof(a))
#define per(i,a,b) for(int i = a;i <= b;++i)
#define rep(i,a,b) for(int i = a;i >= b;--i)
const int maxn = 1e2;
int n = 0,k = 0; 
struct node{
	LL x,y;
};
node a[maxn+10];
vector<LL> vt;
int main(){
	//std::ios::sync_with_stdio(false);
	
	int T = 0;
	scanf("%d",&T);
	while(T--){
		//priority_queue<LL> pq;
		vt.clear();
		scanf("%d %d",&n,&k);
		per(i,1,n){
			scanf("%lld %lld",&a[i].x,&a[i].y);
		} 
		per(i,1,n){
			per(j,i+1,n){
				per(k,j+1,n){
					LL sum = abs((a[j].x-a[i].x)*(a[k].y-a[i].y) - (a[k].x-a[i].x)*(a[j].y-a[i].y));
					vt.push_back(sum);
					//pq.push(sum);
				}
			}
		}
		//sort(vt.begin(),vt.end(),cmp);//复杂度太高 
		nth_element(vt.begin(),vt.begin()+n*(n-1)*(n-2)/6-k,vt.end());
		/*
		STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 
		方法可以使第n小元素处于第n位置(从0开始,其位置是下标为 n的元素),
		并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,
		但不能保证他们是有序的
		*/ 
		LL ans = vt[n*(n-1)*(n-2)/6-k];
		/* 
		LL ans = 0;
		while(k--){//优先队列的复杂度偏高 
			ans = pq.top();
			pq.pop();
		}
		*/
		if(ans % 2 == 0){//注意从0开始,还有就是整数/2的小树部分要么是.00,要么就是.50 
			printf("%lld.00\n",ans/2);
		}else{
			printf("%lld.50\n",ans/2);
		}
	}
	
	return 0;
}

《电磁兼容设计》专栏说明 本专栏自2024年1月起开始更新,仅设此一个电磁兼容相关知识专栏,并将一直持续更新下去,无期限 阅读详情

相关推荐

AirSim中图像API的应用

解析Airsim图像获取保存的api

fegxg的博客 1604

力扣第4题:寻找两个正序数组的中位数 库函数nth_element介绍(C++)

nums1.insert(num1.end(),num2.begin(),num2.end()),将整个向量组2追加到向量1的后面,利用nth_element排中位数,判断向量长度的奇偶,选择直接输出中位数还是求平均值。它的作用是:将区间中第n小的元素排在第n个位置上(升序排列)(注意不是整个区间排序,这个函数只保证第n个元素的正确)例如 有数组a,则nth_element(a,a+2,a+4)会将前四个数中第3小的数排在第3位(合并数组 = [1,2,3] ,中位数 2。实测击败90.5%。

dakingffo的博客 422

Qt跨平台CAN通信实战:Vector、PCAN与周立功设备统一接口设计

本文针对Qt开发中常见的多品牌CAN设备兼容难题,提出了一套统一的跨平台CAN通信接口设计方案。通过抽象层封装,实现了对Vector、PCAN和周立功设备的统一操作,上层业务代码无需修改即可在不同硬件间切换,有效解决了驱动API差异、环境配置复杂和维护成本高等痛点,显著提升了代码复用率和开发效率。

weixin_29161785的博客 329

dp

链接:https://ac.nowcoder.com/acm/contest/327/G 来源:牛客网   题目描述 一天,处女座在牛客算法群里发了一句“我好强啊”,引起无数的复读,可是处女座发现复读之后变成了“处女座好强啊”。处女座经过调查发现群里的复读机都是失真的复读机,会固定的产生两个错误。一个错误可以是下面的形式之一: 1.       将任意一个小写字母替换成另外一个小写字母 2...

qq_40859951的博客 219

一个测试工程师走进一家酒吧……

一个测试工程师走进一家酒吧,要了一杯啤酒;一个测试工程师走进一家酒吧,要了一杯咖啡;一个测试工程师走进一家酒吧,要了 0.7 杯啤酒;一个测试工程师走进一家酒吧,要了-1 杯啤酒;一个测试...

字节跳动技术团队官方博客 4885

Proteus仿真——电压比较器

电压比较器是一种对输入信号进行鉴别与比较的电路,是组成非正弦波发生电路的基本单元电路。常用电压比较器有如下几种:单限比较器、滞回比较器、窗口比较器、集成电压比较器等。

weixin_58745307的博客 3375

牛客寒假算法基础集训营2 A. 处女座的签到题(数学)

题目链接:https://ac.nowcoder.com/acm/contest/327/A 这道题的数据范围不大,所以可以很容易想到暴力去求解,然后我们再考虑一下做法,给了三个点,要求三角形的面积,可以用海伦公式,但是在计算的过程中精度损失过大,而且数据范围是1e9的,double存不下,所以我们还可以用向量法,来求叉积,根据数学知识可知,求得一个顶点的两个向量时,就可以求...

Charles_Zaqdt的博客 437

Unity透明视频播放全攻略:AVPro Video插件实战与避坑指南

在游戏开发与交互式内容创作中,视频播放是常见的多媒体需求。其核心原理在于通过解码器将压缩的视频数据流转换为连续的图像帧,再经由图形API渲染至屏幕。这项技术的价值在于能够高效地呈现动态视觉内容,广泛应用于游戏过场动画、UI特效、AR/VR虚拟展示等场景。当需求进阶到需要背景透明的视频时,技术实现复杂度显著增加,这涉及到对视频Alpha通道的编码、解码与渲染管线的特殊处理。本文聚焦于Unity引擎中实现高质量透明视频播放的工程实践,深入解析了AVPro Video这一专业插件如何解决原生VideoPlayer

weixin_30368981的博客 376

处女座的签到题 平面几何+STL求第K大的数

  链接:https://ac.nowcoder.com/acm/contest/327/A 来源:牛客网   题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多少? 输入描述: 第一行T,表示样例的个数。 对于每一组样例,第一行两个整数n和k, 接下来n行,每行两个整数x,y表示点的坐标 T&lt;=80 3&lt;=n&lt;=100 -109&lt;...

lanshan1111的博客 359

BQ25798双电源输入4节电池升降压充电与最大功率跟踪于光伏板应用

介绍一颗具有窄范围直流电压NVDC、路径管理PPMT、光伏板最大功率跟踪及反向放电OTG升降压充电控制器,带I2C接口能对内部寄存器做控制

linkedin_38804946的博客 1676

共享单车需求预测问题:建模篇

机器学习训练营——机器学习爱好者的自由交流空间(qq群号:696721295) 在上一篇里,我们使用可视化的方法分析了“共享单车”的数据集,理解了特征(变量)之间的关系。我们将在本篇建立几个模型预测单车的需求量,并比较它们的预测效果。 随机森林填充法 首先,导入必需的库、训练集和检验集。 import pylab import calendar import numpy as np impor...

wong2016的博客 1万+

【PAT (Advanced Level) Practice】1029 Median (25 分)题解【nth_element法】

Given an increasing sequence S of N integers, the median is the number at the middle position. For example, the median of S1 = { 11, 12, 13, 14 } is 12, and the median of S2 = { 9, 10, 15, 16, 17 } is 15. The median of two sequences is defined to be the me

xu_haiao的博客 525

《Ventoy 制作系统安装 U 盘的具体步骤》

然后您可以在电脑的磁盘管理中对 U 盘进行快速格式化,选择 FAT32 或 NTFS 文件系统。至此,Ventoy 系统安装 U 盘就制作完成了。您可以在需要安装系统的电脑上,从 U 盘启动,然后选择相应的系统镜像进行安装。安装完成后,将您需要的操作系统镜像文件(如 Windows、Linux 等的 ISO 格式镜像)复制到 U 盘的根目录。在安装程序中,选择您插入的 U 盘设备,确保选择正确,以免误操作。2. 确认选择的 U 盘盘符正确,防止误操作导致其他磁盘数据丢失。点击“安装”按钮,等待安装完成。

jiyiwangluokeji的博客 2666

处女座的签到题 (计算几何)

链接:https://ac.nowcoder.com/acm/contest/327/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多少? 输入描述: 第一行T,表示样例的个数。 对于每一组样...

lgz0921的博客 265

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数据挖掘干货总结(六)--推荐算法之CF

本文共计1245字,预计阅读时长八分钟 推荐算法(二)--CF算法 一、推荐的本质 推荐分为非个性化和个性化,非个性化推荐比如各类榜单,而本系列主要介绍个性化推荐,即: 在合适的场景,合适的时机,通过合适的渠道,把合适的内容,推荐给合适的用户 二、推荐算法的种类 1.基于内容Content Based 2.基于协同Collaboration Filt...

Shuan_Xi的博客 7149

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

处女座与线性代数

https://ac.nowcoder.com/acm/contest/329/A 题解: std 作者:儒生雄才1 链接:https://ac.nowcoder.com/discuss/152781 来源:牛客网   我们将列举出本题所使用到的结论: 1.处女座点的数量最多为 1 证明: 2. 若K维空间一个点集{P1,P2,⋯,PnP1,P2,⋯,Pn}存在处女座点,则

无限迭代中...... 526

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

2018第一次校队集训题解

问题 A: 豆豆强的蛋糕店 时间限制: 1 Sec  内存限制: 128 MB提交: 29  解决: 3 [提交] [状态] [讨论版] [命题人:外部导入] [Edit] [TestData] 题目描述 豆豆强是一个人名,曾经是一名ACMer。通过打斗地主、录视频、作解说、开淘宝店等,豆豆强终于成功走上了致富之路。资金充足的豆豆强最近开了一家蛋糕店,作为一名特立独行的人,豆豆强受不了普通顾...

I_O_fly的博客 2680

牛客寒假算法基础集训营2:处女座的签到题 (三角形面积,nth_element(first,kth,last))

链接:https://ac.nowcoder.com/acm/contest/327/A 来源:牛客网   题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多少? 输入描述: 第一行T,表示样例的个数。 对于每一组样例,第一行两个整数n和k, 接下来n行,每行两个整数x,y表示点的坐标 T&lt;=80 3&lt;=n&lt;=100 -109&lt;=x,y...

The student way 499

power oj 2839: 假装这是签到题 二分

2839: 假装这是签到题   Time Limit: 2000 MS Memory Limit: 262144 KB Total Submit: 39 Accepted: 9 Page View: 153Submit Status Discuss Description 对于线性方程组求是一个十分有趣的而又实用的技能,一般解线性方程组的方法有五种分别为: 第一种 消元法 ,此法 最为简...

include的背后是微不足道的开始 448

处女座与复读机

【题目描述】 一天,处女座在牛客算法群里发了一句“我好强啊”,引起无数的复读,可是处女座发现复读之后变成了“处女座好强啊”。处女座经过调查发现群里的复读机都是失真的复读机,会固定的产生两个错误。一个错误可以是下面的形式之一: 1.将任意一个小写字母替换成另外一个小写字母 2.在任意位置添加一个小写字母 3.删除任意一个字母 处女座现在在群里发了一句话,他收到了一个回应,他想知道这是不是...

Alex_McAvoy的博客 386

处女座的签到题

【题目描述】 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多少? 【输入描述】 第一行T,表示样例的个数。 对于每一组样例,第一行两个整数n和k, 接下来n行,每行两个整数x,y表示点的坐标 T<=80 3<=n<=100 -10^9<=x,y<=10^9 对于每一组样例,保证任意两点不重合,且能构成的三角形的个数不小于k 【输...

Alex_McAvoy的博客 365

有意思的签到题集合~~

题目来源各处都有,难度都是水题难度,但是又不是单纯模拟,有点意思的 No.1 牛客练习赛29A 思路:所有的正数都从1号位置出,所有的负数都不变,倒着来从自己的位置出去。 代码 #include&lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;string.h&gt; usi...

1900的博客 1897

数论基础——欧拉函数

欧拉函数: 就是对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。 欧拉函数的通式:φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn) 其中p1, p2……pn为n的所有质因数,n是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。 所以,根据通式我们可以打出以下代码: ll eular(ll n) { ...

浦柳人的博客 6万+

牛客寒假算法基础集训营2 非官方题解

emmmm今天看到群里有人发题解…然后我自己也想写一个…毕竟自己写的题…拿来装装逼也是可以的吧xixixixixi A 处女座的签到题 链接:https://ac.nowcoder.com/acm/contest/327/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题...

w865629524的博客 1181

处女座的签到题(STL)

链接:https://ac.nowcoder.com/acm/contest/327/A 来源:牛客网 题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多少? 输入描述: 第一行T,表示样例的个数。 对于每一组样例,第一行两个整数n和k, 接下来n行,每行两个整数x,y表示点的坐标 T&amp;amp;lt;=80 3&amp;amp;lt;=n&amp;amp;lt;=100 -109&amp;amp;lt;=x,y&amp;amp;

Sun 360
上一篇: Ayoub and Lost Array- DP - Codeforces Round #533 (Div. 2)
下一篇: 牛客第一场-动态规划-小a与星际探索
Mavis code
博客等级 码龄9年 13粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值