博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019牛客暑期多校训练营(第三场)- H Magic Line (计算几何)
阅读量:4576 次
发布时间:2019-06-08

本文共 786 字,大约阅读时间需要 2 分钟。

题目链接:https://ac.nowcoder.com/acm/contest/883/H

题意:给定n个点(n为偶数),求一条直线使得n个点平均分散在直线两端,即每端n/2个点。

思路:把n个点按x升序排列,x相等时按y升序排列,这时候我们取第n/2个点和第n/2+1个点,以它两为界限,把n个点均分。因为n个点的坐标<=1e3,而我们的直线的点可以<=1e9,那么一定可以找到一条很陡的直线满足条件。

图片来自:https://www.cnblogs.com/st1vdy/p/11245932.html

AC代码:

#include
#include
using namespace std;int T,n;struct node{ int x,y;}pt[1005];bool cmp(node a,node b){ if(a.x==b.x) return a.y
=0) yy1=1e9,yy2=y1-(yy1-y2); else yy2=-1*1e9,yy1=y2+(y1-yy2); if((x1+x2)%2==0) xx1=(x1+x2)/2-1,xx2=xx1+2; else xx1=x1+(x2-x1)/2,xx2=xx1+1; printf("%d %d %d %d\n",xx1,yy1,xx2,yy2); } return 0;}

 

转载于:https://www.cnblogs.com/FrankChen831X/p/11258391.html

你可能感兴趣的文章
[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
查看>>
[转载,感觉写的非常详细]DUBBO配置方式详解
查看>>
Android在Eclipse上的环境配置
查看>>
面向对象(五)
查看>>
android平台下使用点九PNG技术
查看>>
Python学习3,列表
查看>>
最长回文子串
查看>>
JAVA基础-JDBC(一)
查看>>
js中for和while运行速度比较
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
lua 函数
查看>>
Git的基本命令
查看>>
四平方和
查看>>
第十八周 12.27-1.2
查看>>
C# IP地址字符串和数值转换
查看>>
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>