当前位置: 首页 > article >正文

水平可见直线--上凸包(andrew算法

P3194 [HNOI2008] 水平可见直线 - 洛谷

不过·只有90%

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
typedef pair<ll,int> pii;
int n;
struct no
{double k,b;int id;
}a[N],an[N];
int k;
bool cmp(no a,no b)
{if(a.k==b.k) return a.b<b.b;return a.k<b.k;
}
double cross(double ax,double ay,double bx,double by)
{return ax*by-ay*bx;
}
int t;
void andrew()
{an[0]=a[0];k=1;for(int i=0;i<n;i++){while(k>1&&cross(an[k-1].k-an[k-2].k,an[k-1].b-an[k-2].b,a[i].k-an[k-1].k,a[i].b-an[k-1].b)<=1e-6){k--;}an[k++]=a[i];///只求上凸包 }t=k;for(int i=n-2;i>=0;i--){while(k>t&&cross(an[k-1].k-an[k-2].k,an[k-1].b-an[k-2].b,a[i].k-an[k-1].k,a[i].b-an[k-1].b)<=1e-6){k--;}an[k++]=a[i];///只求上凸包 }
}
bool cc(no a,no b)
{return a.id<b.id;
}
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=0;i<n;i++){cin>>a[i].k>>a[i].b;a[i].id=i+1;	}sort(a,a+n,cmp);andrew();sort(an+t-1,an+k,cc);for(int i=t-1;i<k;i++) cout<<an[i].id<<" ";return 0;
}

http://www.lryc.cn/news/2379498.html

相关文章:

  • 【mysql】并发 Insert 的死锁问题 第二弹
  • Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流
  • 一个stm32工程从底层上都需要由哪些文件构成
  • [Mac] 开发环境部署工具ServBay 1.12.2
  • 商城小程序源码介绍
  • 鸿蒙OSUniApp 实现图片上传与压缩功能#三方框架 #Uniapp
  • 科技项目验收测试对软件产品和企业分别有哪些好处?
  • javascript和vue的不同
  • duxapp 2025-01-06更新 CLI新增帮助支持,优化基础模块结构
  • 汽车零部件冲压车间MES一体机解决方案
  • hysAnalyser 从MPEG-TS导出ES功能说明
  • 家里wifi不能上网或莫名跳转到赌博及色情网站就是域名被劫持、DNS被污染了
  • 基于SSM实现的健身房系统功能实现十六
  • 【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现
  • [Harmony]大文件持久化
  • pgsql14自动创建表分区
  • cursor/vscode启动项目connect ETIMEDOUT 127.0.0.1:xx
  • Leetcode 3553. Minimum Weighted Subgraph With the Required Paths II
  • 兼顾长、短视频任务的无人机具身理解!AirVista-II:面向动态场景语义理解的无人机具身智能体系统
  • springboot踩坑记录
  • SparkSQL基本操作
  • Web 架构之动静分离
  • 20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤
  • sparkSQL读入csv文件写入mysql
  • 大涡模拟实战:从区域尺度到街区尺度的大气环境模拟
  • centos安装方式的aarch64架构下的kylinv10安装docker23.0.0
  • 单目测距和双目测距 bev 3D车道线
  • 鸿蒙OSUniApp 实现一个精致的日历组件#三方框架 #Uniapp
  • 【爬虫】DrissionPage-3
  • Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包