HDU 6325 Problem G. Interstellar Travel(凸包)

题意:

给你n个点,第一个点一定是(0,0),最后一个点纵坐标yn一定是0,中间的点的横坐标一定都是在(0,xn)之间的

 然后从第一个点开始飞行,每次飞到下一个点j,你花费的价值就是xi*yj-xj*yi,并且这里每一次飞行必须满足xi<xj

让你求出你所花费的最小的价值(可以为负)下,飞行的路径,如果有多种情况,输出路径字典序最小的那个

显然坐标相同的点里只保留编号最小的点最优。这里是因为题目严格要求xi<xj,所以不可能在原地飞行。

将起点到终点的路径补全为终点往下走到无穷远处,再往左走到起点正下方,再往上回到起点。任意路径中回到起点部分的代价相同,观察代价和的几何意义,就是走过部分的面积的相反数。代价和最小等价于面积最大,故一定是沿着上凸壳行走。

显然起点、终点、凸壳的拐点必须要作为降落点。对于共线的点a​1​​,a​2​​,...,a​m​​,若一个点ii的编号是[i,m]中最小的,那么在此处降落可以最小化字典序。

#include<bits/stdc++.h>
using namespace std;
const int mx = 2e5 + 10;
typedef long long ll;
int n,m,ans[mx],top,ma;
struct node
{int x,y;int pos;
}s[mx],tubeg[mx],w;
bool vis[mx];
ll judge(node p1,node p2,node p0)//面积公式判断正负值 
{ll ans = 1ll*(p1.x-p0.x)*(p2.y-p0.y) - 1ll*(p2.x-p0.x)*(p1.y-p0.y);return ans; 
}
bool cmp(node a,node b)
{ll c = judge(w,b,a);//极角排序,同角度按距离从小到大排 if(b.x==a.x&&b.y==a.y) return a.pos > b.pos;if(!c) return pow(a.x-w.x,2)+pow(a.y-w.y,2) < pow(b.x-w.x,2)+pow(b.y-w.y,2);return c > 0;
}
void Graham()
{tubeg[0] = s[0],tubeg[1] = s[1];top = 2;for(int i=2;i<n;i++){while(top>1&&judge(tubeg[top-2],s[i],tubeg[top-1])<=0){if(judge(tubeg[top-2],s[i],tubeg[top-1])<0||tubeg[top-1].pos>s[i].pos) top--;else break;}tubeg[top++] = s[i];}for(int i=0;i<top;i++) printf("%d%c",tubeg[i].pos+1,i==top-1?'\n':' ');
}
int main()
{int t;scanf("%d",&t);while(t--){scanf("%d",&n);memset(vis,0,sizeof(vis));for(int i=0;i<n;i++){scanf("%d%d",&s[i].x,&s[i].y);s[i].pos = i; }w = s[0];sort(s+1,s+n,cmp);Graham();}return 0;
} 
View Code

 

转载于:https://www.cnblogs.com/shuaihui520/p/10323080.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UIView封装动画--iOS利用系统提供方法来做关键帧动画

iOS利用系统提供方法来做关键帧动画 ios7以后才有用。 /*关键帧动画options:UIViewKeyframeAnimationOptions类型*/[UIView animateKeyframesWithDuration:5.0 delay:0 options: UIViewAnimationOptionCurveLinear| UIViewAnimationOptionCurveLinear animations:^{//第二个关键…

JavaScript —从回调到异步/等待

JavaScript is synchronous. This means that it will execute your code block by order after hoisting. Before the code executes, var and function declarations are “hoisted” to the top of their scope.JavaScript是同步的。 这意味着它将在提升后按顺序执行代码块。…

关于解决工作中的自动化环境搭建的解决方案(序)

时间&#xff1a;2015~2017 之前的自动化搭建平台&#xff1a;robotest 安装工具&#xff1a;jdk1.8,robotest 这种工具反正超级好用&#xff0c;华为方搞得工具&#xff0c;前台操作超级傻瓜。会点xpatch&#xff0c;一些东西根本不在话下。但是坑爹的就是&#xff0c;出了外包…

xshell安装mysql步骤_mysql主从复制

前期提要&#xff1a;三年前双11买的阿里云今年到期了&#xff0c;win2012的&#xff0c;上面mysql数据库里记着自己的一些记账数据&#xff0c;上一年双11买了腾讯云的&#xff0c;centos7.7, 想学学MYSQL的复制功能&#xff0c;今天趁着无BUG可撸&#xff0c;试着配置了一下&…

大专学计算机维修,《计算机维修与网络工程》大专学历班

语文、数学、计算机英语、公文写作等办公自动化指法训练、英文打字、智能拼音及高速五笔字型中文打字、windows操作、Word2003文字处理软件、Excel2003电子表格、Powerpoint2003幻灯片制作、Internet网络的上网方法、浏览、下载、电子邮件收发等。本班学习完毕&#xff0c;可独…

webpack指定第三方模块的查找路径

通常我们会使用一些地方模块在我们的项目中&#xff0c;比如bootstrap import bootstrap 导入的bootstrap默认会查找当前目录的node_modules文件&#xff0c;但是如果这个文件没有&#xff0c;会依次往上级模块查找&#xff0c;直到到C盘的根目录为止&#xff0c;可以通过webpa…

我的第一个安卓应用程序_我如何设计我的第一个应用程序

我的第一个安卓应用程序by Daniel Novykov丹尼尔诺维科夫(Daniel Novykov) 我如何设计我的第一个应用程序 (How I Designed My First App) This is a story about building a product, what went wrong, and how it changed my career into Design.这是一个有关构建产品&#…

Appium——主从控制执行

1.客户端(Eclipse)机器A&#xff0c; 服务端(appium、Genymotion)机器B 2.设置Appium&#xff0c;Server Address为192.168.17.123&#xff0c;重新启动Appium 3.在客户端机器A浏览器中输入&#xff1a;http://192.168.17.123:4723/wd/hub&#xff0c; 说明配置成功。 JAVA代码…

Python学习-03(集合,文件,编码)

上周复习&#xff1a; 列表增删改查 元祖是可读列表 字符串操作 字典是无序的&#xff0c;通过key来找值。字典可以嵌套列表和字典 本周内容&#xff1a;集合--文件---字符编码 集合引入&#xff1a; #随机生成20个小于20的数&#xff0c;输出所有的数&#xff0c;# 要求重复…

安装centos7失败认不到硬盘_CentOS7 用U盘安装卡住无法进入安装界面解决方案

使用U盘安装Centos系统找不到U盘解决方案补充&#xff1a;1、制作U盘启动盘请参考&#xff1a;使用UltraISO(软碟通)制作ubuntu U盘启动盘如果你安装centos7出现了下图这种情况不用担心&#xff0c;是因为安装centos7时找不到U盘稍等一下&#xff0c;如下图等到出现命令行时。输…

Django横向二级导航栏(鼠标悬空事件)

1 <!DOCTYPE html>2 <html lang"en" xmlns"http://www.w3.org/1999/html">3 <head>4 <meta charset"UTF-8">5 <title>{% block title %} base模板 {% endblock title%}</title>6 <style >…

浙江大学计算机学院1702班,测控1702:传道授业解惑 此间师者真情

2017年9月11日晚8:00&#xff0c;电气与信息工程学院测控技术与仪器1702班在德智学生公寓的天台上开展了一场别开生面的班主任见面交流会。测控1702班班主任文一章博士、电气院2017级本科辅导员金晶老师以及测控1702班的同学们参加了此次见面会。测控1702班班主任文一章1991年出…

通过小程序给公众号传递消息_多输入现场消息传递应用程序概念

通过小程序给公众号传递消息by Dawid Woldu戴维德沃尔杜(Dawid Woldu) 多输入现场消息传递应用程序概念 (A multi-input field messaging app concept) Some time ago I shared in a Medium article the idea for context aware messenger app. The idea challenged the desig…

Oracle【IT实验室】数据库备份与恢复之二:SQL*Loader

2.1 基本知识 Oracle 的 SQL* LOADER 可以将外部格式化的文本数据加载到数据库表中。通常 与 SPOOL导出文本数据方法配合使用。 1.命令格式 SQLLDR keywordvalue [&#xff0c;keywordvalue&#xff0c;……] 例&#xff1a;$ sqlldr user/pwd controlemp.ctl dataemp.dat ba…

关于spring 获取不到网站上的xsd的处理记录

2019独角兽企业重金招聘Python工程师标准>>> 前两天做一个项目还好好的&#xff0c;今天突然报出这个错误 cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element mvc:annotation-driven 应该是xml文件找不到相应…

蓝宝石英语怎么读_黑金和蓝宝石

这是一直以后我个人的一个理解误区&#xff0c;或者说是信息误区&#xff0c;就是这两个产品线&#xff0c;差别到底在哪里&#xff1f;以前我一直认为黑金的成分是纯天然的&#xff0c;而蓝宝石有一定的合成物质。这个信息一定是我从哪里读到的&#xff0c;由于无处求证&#…

秘密潜入2小辣椒_短暂潜入2次,我显然不知道自己作为开发人员正在做什么

秘密潜入2小辣椒by Zachary Kuhn扎卡里库恩(Zachary Kuhn) 那两次我显然不知道我作为开发人员正在做什么 (Those two times where I clearly had no clue what I was doing as a developer) Last week I had a short conversation with coworkers about how we had messed up …

提高你的javascript代码逼格系列之函数与数组

不知道大家有没有一种感觉&#xff0c;那就是自己写的javascript代码虽然能完全解决工作上的需要&#xff0c;但是&#xff0c;一眼望去&#xff0c;too simple&#xff01;&#xff01;&#xff01;简直就是一个傻子都能看懂的水平&#xff0c;于是&#xff0c;在工作之余&…

印度评论九章量子计算机,张礼立:中国 “九章”量子计算机到底厉害在哪?...

【背景信息】12月4日&#xff0c;《科学》杂志公布了中国“九章”的重大突破。 这台由中国科学技术大学潘建伟、陆朝阳等学者研制的76个光子的量子计算原型机&#xff0c;推动全球量子计算的前沿研究达到一个新高度。尽管距离实际应用仍有漫漫长路&#xff0c;但成功实现了“量…

手机web网页制作的认识(有关meta标签)

近日以来一直在看JQuery Mobile 一个手机开发框架&#xff0c;说实话真的很头疼的~~~~ 因为里面有很多的属性、方法和事件~~~ 下面是手机网页的一些认识&#xff1a; 一、<meta name"viewport" id"viewport" content"widthdevice-width, initial-s…