Luogu2992[USACO10OPEN] Triangle Counting

基于 PID 算法的 STM32 步进电机高精度位置控制系统设计与实现(工业自动化应用) 硬件层面:选用 STM32F103C8T6+A4988 + 欧姆龙编码器的组合,兼顾工业可靠性与成本,接线需注意强弱电分离和信号抗干扰;软件层面:核心为位置式 PID 闭环控制,Mermaid 流程图清晰展现 “采集 - 运算 - 驱动” 的闭环逻辑,代码模块化易移植;性能层面:无负载定位误差≤±1 脉冲,带载误差≤±3 脉冲,满足工业自动化高精度位置控制需求。 阅读详情

洛谷链接:https://www.luogu.org/problemnew/show/P2992
bzoj链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1914

Triangle Counting

Description

在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责。从她的守卫塔向下瞭望简直就是一件烦透了的事情。她决定做一些开发智力的小练习,防止她睡着了。想象牧场是一个X,Y平面的网格。她将N只奶牛标记为1…N (1 <= N <= 100,000),每只奶牛的坐标为X_i,Y_i (-100,000 <= X_i <= 100,000;-100,000 <= Y_i <= 100,000; 1 <= i <=N)。然后她脑海里想象着所有可能由奶牛构成的三角形。如果一个三角形完全包含了原点(0,0),那么她称这个三角形为“黄金三角形”。原点不会落在任何一对奶牛的连线上。另外,不会有奶牛在原点。给出奶牛的坐标,计算出有多少个“黄金三角形”。顺便解释一下样例,考虑五只牛,坐标分别为(-5,0), (0,2), (11,2), (-11,-6), (11,-5)。下图是由贝西视角所绘出的图示。

Input

第一行:一个整数: N
第2到第N+1行: 每行两个整数X_i,Y_i,表示每只牛的坐标

Output

第一行: 一行包括一个整数,表示“黄金三角形的数量”

Sample Input

5
-5 0
0 2
11 2
-11 -6
11 -5

Sample Output

5

题解

每个点和原点的交点所在的直线能将平面分成两部分,显然,在其中任意一部分中的任意两个点都无法与原来的点连成“黄金三角形”。我们只需要枚举每个点,统计其一边的点的数量n,那么n×(n-1)就是“非黄金三角形”的数量,而跨过这条直线形成的“黄金三角形”必定会被其他点统计到(大家画图+感性理解一下),所以“黄金三角形”数量=三角形数量(n×(n-1)×(n-2)÷6)-“非黄金三角形”数量,我们就得出了答案。  
然而事情还没有想象的那么简单,我们如果每个点暴力统计的话O(n^2)依然T的飞起。我们注意到,在直线一侧的点其实是可以二分的,我们将所有点按与原点连接的直线的斜率排序,统计就可以二分查找在直线一侧的点。这样复杂度就是O(3nlogn)的了,已经可以A掉这道题。  
然而其实还有更优的解法,在统计直线一侧的点的时候,其实信息是可以复用的,如果我们按斜率从小到大查找的话,那么查找的点很大一部分是重复的,我们复用这部分信息,每次只需要查找一小部分的点,总共复杂度就是O(n+nlogn)。

代码
#include<bits/stdc++.h>
using namespace std;
int n;
struct pt{long long x,y;double ang;};
long long operator * (pt a,pt b){return a.x*b.y-a.y*b.x;}
bool operator < (const pt &a,const pt &b){return a.ang<b.ang;}
pt a[100005];
void in()
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
    scanf("%lld%lld",&a[i].x,&a[i].y),a[i].ang=atan2(a[i].y,a[i].x);
}
void ac()
{
    sort(a+1,a+n+1);
    long long cot=0,ans=0,r=2;
    for(int i=1;i<=n;++i)
    {
        while(r!=i&&a[i]*a[r]>=0) cot++,r=r%n+1;
        ans+=1ll*cot*(cot-1)/2;
        cot--;
    }
    printf("%lld",1ll*n*(n-1)*(n-2)/6-ans);
}
int main()
{
    in();ac();
    return 0;
}
【异常】解决 Cursor 报错 Unexpected seqno: 2 != 1. Please try again, or contact support if the issue 的排坑指南 在使用 Cursor 辅助编程时,你是否遇到过 AI 突然中断输出,并在右下角弹出一个红色的 Network Error 弹窗?今天我们就来彻底解析并解决这个网络断连问题。 阅读详情

相关推荐

STM32+ST7789屏实战:手把手教你打造物理按键控制的3级菜单GUI(附完整代码)

本文详细介绍了如何使用STM32和ST7789屏构建物理按键控制的3级菜单GUI系统。从硬件架构设计、SPI驱动配置到菜单状态机实现,提供了完整的代码示例和优化技巧,帮助开发者快速掌握嵌入式GUI开发的核心技术。

iii12的专栏 236

洛谷P2992 [USACO10OPEN]三角形计数Triangle Counting

容斥+简单计算几何

ACoder 827

ASPP - 空洞空间金字塔池化

文章目录1 空洞卷积1.1 空洞卷积的理解1.1.1 一维1.1.2 二维1.2 空洞卷积的优劣2. ASPP3. 代码 1 空洞卷积 1.1 空洞卷积的理解 1.1.1 一维 (a) 正常卷积:输入特征 Input feature,kernel = 3,stride = 1,pad = 1,输出特征 Output feature。 (b) 空洞卷积:与图 (a) 不同之处在于 pad = 2,同时引入一个 rate = 2(表示卷积核中参数间间隔的超参)。   还可通过下图进一步理解普通卷积与空洞卷

晓野豬 2万+

bzoj1914[Usaco2010 OPen]Triangle Counting 数三角形 极角排序+乱搞

题意:给出一些点,问你有多少个三角形能覆盖原点。 我们首先可以通过正难则反的原则,把题目转化为求不能覆盖原点的方案数。 总方案数是n*(n-1)*(n-2)/6. 先把所有点极角排序,然后扫过去,我们对于一个当前点i,他和原点的连线一定能把他所在的象限分成两个平面,对于线段左边的一个平面(当然你也可以选择右边),其中任意两个点x,y和i相连,肯定不会覆盖原点,所以通过这种方法就能够做到较快统计

老臣 676

Jetson工业级应用指南:用Orin NX 16GB打造多摄像头AI质检系统

本文详细介绍了如何利用NVIDIA Jetson Orin NX 16GB构建高效的多摄像头AI质检系统,涵盖硬件选型、软件优化及产线部署全流程。通过100 TOPS的AI算力和多路视频处理能力,Orin NX在工业4.0时代展现出卓越的实时缺陷检测性能,特别适合嵌入式AI应用场景。

Pepper的专栏 307

SAP 物料的分割评估

SAP 物料的分割评估 前言 本文主要讲解SAP中物料的分割评估,通过分割评估来区分出同一物料不同来源下的核算方式。例如:同一物料分为自产或者采购,或者同一物料分为进口或者国内采购等。 一、概述 分割评估一般用于以下场景: 1、物料分为内部采购和外部采购; 2、物料分属于进口或者国内采购; 3、物料分属于不同的批次; 4、物料分为自制或者采购。 由于物料的来源不同可能导致物料的价格或者性质不同,需要用不同价格来区分出 二、配置步骤 1.激活分割评估 ...

五谷散熊 6792

【NOIP 模拟题】[T3]三角形(差分+乱搞)

白纱凝霜,梦萦千回终不悔

reverie_mjp的博客 728

ORB-SLAM3算法2之EuRoc开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹

ORB-SLAM3算法1 已成功编译安装ORB-SLAM3到本地,本篇目的是用EuRoc开源数据来运行ORB-SLAM3,并生成轨迹,最后用evo评估工具来评估ORB-SLAM3生成的轨迹和真值轨迹。

重点记录机器人和自动驾驶相关领域的技术,尤其是计算机视觉,视觉SLAM等,不仅有前言文献或必备算法的学习,也会有实际应用的点滴经验 3762

三角形计数

三角形计数 时间限制: 3 Sec 内存限制: 8 MB 提交: 334 解决: 51 [提交][状态][讨论版] 题目描述 【背景】 Day1T1当然是又裸又水的题了怎么会有背景呢。 【题目描述】 给定n个点的坐标(0&amp;lt;=xi,yi&amp;lt;=10000)求选出任意三个点能组成的三角形的总面积。 输入 第一行n表示点数。接下来每行两个数xi,yi表示点的坐标。 输出...

Mi-Queen 1563

学Simulink--基于电力电子变换器的建模与仿真实例:LLC谐振变换器在高频AC-DC转换中的建模

本文详细介绍了使用Simulink+Simscape Electrical对LLC谐振变换器进行建模与仿真的完整流程。LLC谐振变换器因其高效率、低噪声的特点,广泛应用于高频AC-DC转换场景。文章从背景原理出发,逐步讲解系统结构设计、建模步骤(包括AC源、整流器、LLC变换器、负载等模块搭建)、控制策略实现(固定频率/变频/PID控制)和仿真设置。通过分析仿真结果的关键指标,提出参数整定和算法优化建议。该建模方法为电力电子设计人员提供了实用的仿真工具,有助于优化LLC变换器性能,缩短开发周期。

xiaoheshang_123的博客 298

[QMT量化交易小白入门]-七十三、主力资金动向:板块与个股资金流数据API(量化python代码解析)

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1118

BZOJ1914: [Usaco2010 OPen]Triangle Counting 数三角形(极角排序)

传送门题意: 给n个点,求组成的所有三角形中包含原点的三角形的个数。题解: 可转化为不包含原点的个数,观察发现这种三角形的三个顶点一定在经过原点直线的一侧,直接扫一遍就好了。#include<bits/stdc++.h> using namespace std; typedef long long ll; struct IO{ streambuf *ib,*ob; inline

DZYO的博客 413

用 ABAP LSMW 的 Standard Batch / Direct Input 稳准快迁移物料主数据:从 MM01 录制到 RMDATIND 直入的落地指南

本文详细介绍了SAP数据迁移中LSMW工具的使用方法,重点分析了物料主数据迁移的两种主要路径:Batch Input Recording和Standard Batch/Direct Input。前者通过录制事务操作实现快速起步,后者通过调用预置接口程序实现稳定高效的批量处理。文章深入解析了Standard Direct Input的具体实施步骤,包括对象属性设置、源结构定义、字段映射规则等关键环节,并特别强调了迁移前的准备工作(如编号策略、视图策略等)对项目成功的重要性。通过对比两种方法的优缺点,为不同业务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 155

【题解】Luogu P2992 [USACO10OPEN]三角形计数Triangle Counting

原题传送门 我们考虑进行容斥 包含原点的三角形个数=所有可能三角形的个数-不包含原点三角形的个数 对于每个点,我们会发现:将它与原点连线,在直线左边任选两点或右边任选两点与这个点构成的三角形一定是不包含原点的 对于每个点都这样计算,累加,会发现有算重复的(但不会少情况,自己画画图就民白了),所以每次只选这个点向量的半平面上的两个点 这样我们珂以对所有点进行极角排序,这样就珂以做到线性 代...

weixin_30865427的博客 197

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

luogu P2992 [USACO10OPEN]三角形计数Triangle Counting

https://www.luogu.org/problemnew/solution/P2992 考虑包含原点,不包含原点的三角形有什么特征. 包含原点的三角形:任意找一个顶点和原点连线,一定能把另外两个顶点隔开到两侧. 不包含原点的:三个顶点中只有一个顶点满足:和原点连线后,能把另外两个顶点隔开到两侧. 因此我们统计这样的三点组(x,y,z)的数目:x和原点的连线能把y和z隔开在两侧. 一共C(n...

weixin_30376453的博客 123

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Triangle Counting

Description Problem G Triangle Counting Input: Standard Input Output: Standard Output   You are given n rods of length 1, 2…, n. You have to pick any 3 of them & build a triangle. How many

u013776243的专栏 878

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

BZOJ 1914: [Usaco2010 OPen]Triangle Counting 数三角形

Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责。从她的守卫塔向下瞭望简直就是一件烦透了的事情。她决定做一些开发智力的小练习,防止她睡着了。想象牧场是一个X,Y平面的网格。她将N只奶牛标记为1…N (1 <= N <= 100,000),每只奶牛的坐标为X_i,Y_i (-100,000 <= X_i <= 100,000;

jjs98 811

UVa 11401 - Triangle Counting//计数

简单的计数,只要做到不重,不漏,就应该能过了。   下面是代码,因为是厚白数上的例题,所以自己很没谱。    #include using namespace std; long long ans[10000010]; int main() { ans[3]=0; for(long long i=4;i<=10000010;i++) ans[i]=ans[i-1

mr_zys的专栏 654

[BZOJ1914][Usaco2010 OPen]Triangle Counting 数三角形

计算几何 凹四边形计数

srand(time(0)) 598

1914: [Usaco2010 OPen]Triangle Counting 数三角形 (计算几何)

先极角排序,对于某个点x,其与原点连线所在直线将平面划分为两部分,若一个部分有t个点,在这t个中任取2个与x显然不构成黄金三角形,画图可知对于每个点只统计某个方向的半平面内的点就能不重不漏。具体可以用一个指针旋转半平面。#include #include #include #include #define pi acos(-1.0) using namespace std; struct P{

507

[USACO Open10]数三角形Triangle Counting解题报告

题目 http://cojs.tk/cogs/problem/problem.php?pid=543 分析 这道题的要点在于:含原点的三角形不好数,我们数不含原点的三角形,最后用C(N,3)扣掉它就是答案了。 怎么数“不含原点的三角形”呢? 画出我们所在的坐标系。我们拿一条过原点的直线l,按极角序去扫描: 直线l分成两条射线,一个是a

uKJLThHU$(eQ 1550

[洛谷P2992] 三角形计数 几何

平面上给出n≤1e5n\leq1e5n≤1e5的点,然后求有多少个三角形满足这个三角形包含原点(0,0)(0,0)(0,0)。 直接考虑包含原点的三角形比较难计算。考虑算不包含原点的三角形的个数,固定一个点,那么所有不包含原点的三角形的另外两个端点一定在该点与原点连线直线的同一个半平面中。 对每个点只选取逆时针的半平面避免出现重复的情形。 这样对所有的点先极角排序,然后双指针维护左半平面点的个数。...

qq_40859782的博客 300

计算几何刷题之路

来自Wuvin的计算几何入门建议: 以此作为计算几何刷题和博客的索引 入门 点与直线的位置关系(poj2318) &nbsp; 枚举端点求与所有线段相交的一条直线(poj3304) 直线交线段(poj2074) 线段交线段(poj2653\ poj1410) 极角扫描求n点共线(bzoj1610\ bzoj1822) 极角扫描求凸四边形(bzoj1914) 逆向思维(b...

ShadyPi的IT笔记 1018

BZOJ1185[HNOI2007] 最小矩形覆盖

原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1185 最小矩形覆盖 题目描述 给定一些点的坐标,要求求能够覆盖所有点的最小面积的矩形,输出所求矩形的面积和四个顶点坐标 输入输出格式 输入格式: 第一行为一个整数n(3&lt;=n&lt;=50000),从第2至第n+1行每行有两个浮点数,表示一个顶点的...

ShadyPi的IT笔记 635

[2018.10.17 T1] 斜率

暂无链接 斜率 【题目描述】 给定平面上nnn个点的坐标,求所有经过这些点中至少两个点的直线的最大斜率。 【输入格式】 第一行一个整数nnn,表示点的个数。 接下来nnn行,每行两个正整数x,yx,yx,y,描述每个点的坐标。 【输出格式】 一行一个实数表示答案,保留小数点后333位。 【样例 1】 slope. in 3 1 2 2 3 3 4 slope.out 1.000 【样例 2】 见...

ShadyPi的IT笔记 484

BZOJ3707 圈地

原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3707 圈地 Description 2维平面上有n个木桩,黄学长有一次圈地的机会并得到圈到的土地,为了体现他的高风亮节,他要使他圈到的土地面积尽量小。圈地需要圈一个至少3个点的多边形,多边形的顶点就是一个木桩,圈得的土地就是这个多边形内部的土地。(因为黄学长非常的神,所以...

ShadyPi的IT笔记 476
上一篇: BZOJ1822[JSOI2010] 冷冻波
下一篇: POJ1039 Pipe
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值