团体程序设计天梯赛代码。体现代码技巧,比赛技巧。  https://github.com/congmingyige/cccc_code

 #include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; #define ll long long
const int maxn=1e4+;
const int inf=1e9;
const double eps=1e-; struct node
{
int x,y;
}d1[maxn],d2[maxn],a[maxn]; ll cross(node c,node a,node b)
{
///两者相乘,也许大于int范围
return 1ll*(c.y-a.y)*(c.x-b.x) - 1ll*(c.x-a.x)*(c.y-b.y);
} bool cmp1(node a,node b)
{
ll v=cross(d1[],a,b);
if (v==)
return d1[].x-a.x<d1[].x-b.x;
return v<;
} bool cmp2(node a,node b)
{
ll v=cross(d2[],a,b);
if (v==)
return d2[].x-a.x<d2[].x-b.x;
return v>;
} /**
两者在v==0处无法统一
**/ int main()
{
int n,x,ymax,ymin,i,j,ind=,m;
double k,b;
d1[].x=inf;
scanf("%d",&n);
for (i=;i<=n;i++)
{
scanf("%d%d%d",&x,&ymax,&ymin);
d1[i]={x,ymax},d2[i]={x,ymin};
if (d1[i].x<d1[ind].x)
ind=i;
} if (n==)
{
printf("%d %d %d %d",-,ymax,,ymax);
return ;
} swap(d1[],d1[ind]);
sort(d1+,d1+n+,cmp1); ///注意是+2(对d1[2]~d1[n]排序)
m=;
for (i=;i<=n;i++)
{
while (m>= && cross(a[m],a[m-],d1[i])<=)
m--;
a[++m]=d1[i];
} for (i=;i<=m;i++)
{
if (a[i].x<a[i-].x)
break;
k=1.0*(a[i].y-a[i-].y)/(a[i].x-a[i-].x);
b=a[i].y-k*a[i].x;
for (j=;j<=n;j++)
if (k*d2[j].x+b<d2[j].y-eps)
break;
if (j==n+)
{
printf("%d %d %d %d",a[i].x,a[i].y,a[i-].x,a[i-].y);
return ;
}
} swap(d2[],d2[ind]);
sort(d2+,d2+n+,cmp2);
m=;
for (i=;i<=n;i++)
{
while (m>= && cross(a[m],a[m-],d2[i])>=)
m--;
a[++m]=d2[i];
}
for (i=;i<=m;i++)
{
if (a[i].x<a[i-].x)
break;
k=1.0*(a[i].y-a[i-].y)/(a[i].x-a[i-].x);
b=a[i].y-k*a[i].x;
for (j=;j<=n;j++)
if (k*d1[j].x+b>d1[j].y+eps)
break;
if (j==n+)
{
printf("%d %d %d %d",a[i].x,a[i].y,a[i-].x,a[i-].y);
return ;
}
} return ;
}
/*
4
-1 5 3
2 4 3
1 5 2
0 4 3
*/

团体程序设计天梯赛(CCCC) L3012 水果忍者 上凸或下凹的证明的更多相关文章

  1. 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  2. 团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  3. 团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code #include <cstdio> #include ...

  4. 团体程序设计天梯赛(CCCC) L3014 周游世界 BFS证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  5. 团体程序设计天梯赛(CCCC) L3013 非常弹的球 不同思路

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  6. 团体程序设计天梯赛(CCCC) L3009 长城 方法证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  7. 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)

    前提是数的范围较小 1 数据范围:O(n) 2 查第k大的数i:log(n)(树状数组查询小于等于i的数目)*log(n)(二分找到i) 3 添加:log(n) (树状数组) 4 删除:log(n) ...

  8. PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集

    L2-001 紧急救援 (25 分)   作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...

  9. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

随机推荐

  1. Service Account和RBAC授权

    一.介绍 Service Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务.Service Accou ...

  2. mongodb3的使用

    1.在windows下载安装mongodb 将下载好的zip压缩文件解压并重命名为mongo-3.0.6,并在根目录下新建文件夹data用于存放数据 2.启动mongod守护进程 使用命令mongod ...

  3. idea创建maven项目的一点关键

    maven中的一些概念: POM:项目对象模型(Project Object Model),是项目的一些关键元信息的集合.主要包含项目管理信息.具体的项目描述.开发小组的构 成.源代码库(如CVS)和 ...

  4. source 和 .

    Linux Source命令及脚本的执行方式解析 当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用source命令,如:source /etc/profile 对 ...

  5. Xamarin 简化的Android密钥库签名

    安装 开始使用这个新工具不容易.在Visual Studio 2017(即将推出VS 2015),只需转到工具 - >扩展和更新,并搜索“密钥库”来查找扩展名. 下载后,只需重新启动Visual ...

  6. 基于FPGA的16阶级联型iir带通滤波器实现

    警告 此文章将耗费你成吨的流量,请wifi下阅读,造成的流量浪费本人不承担任何责任.初版源代码获取(请勿用作他用,仅供学习):https://gitee.com/kingstacker/iir.git ...

  7. 【XSY2693】景中人 区间DP

    题目描述 平面上有\(n\)个点,你要用一些矩形覆盖这些点,要求: 每个矩形的下边界为\(y=0\) 每个矩形的大小不大于\(s\) 问你最少要用几个矩形. \(n\leq 100,1\leq y\l ...

  8. jqGrid 中文配置 - grid.locale-cn.js 多国语言

    中文配置如下:多国语言(demo 内有官方下载连接 ): jqGrid 表格插件中文 grid.locale-cn.js 代码如下: ;(function ($) { /** * jqGrid Eng ...

  9. 【BZOJ5305】[HAOI2018]苹果树(组合计数)

    [BZOJ5305][HAOI2018]苹果树(组合计数) 题面 BZOJ 洛谷 题解 考虑对于每条边计算贡献.每条边的贡献是\(size*(n-size)\). 对于某个点\(u\),如果它有一棵大 ...

  10. 【拓扑排序】烦人的幻灯片(slides)

    1395:烦人的幻灯片(slides) 时间限制: 1000 ms         内存限制: 65536 KB提交数: 753     通过数: 416 [题目描述] 李教授将于今天下午作一次非常重 ...