团体程序设计天梯赛代码。体现代码技巧,比赛技巧。  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. git简介及安装(win10)

    一句话介绍git Git是Linus Torvalds编写,目前是世界上最先进的分布式版本控制系统. git能干什么? 代码备份.还原,版本管理,分支管理,解决冲突,协同开发... 安装git > ...

  2. Helm

    helm类似yum helm下载的是配置清单文件 核心术语: Chart:一个helm程序包: Repository:Charts仓库,https/http服务器: Release:特定的Chart部 ...

  3. Nginx http反向代理流程Proxy_pass模块

    L:88 反向代理代码示列 server { listen ; server_name shop**.com.cn; location /{ proxy_pass http://test/www; p ...

  4. Spring 使用介绍(八)—— 零配置(一)

    一.概述 所谓零配置,并不是说一点配置都没有了,而是配置很少而已.通过约定来减少需要配置的数量,提高开发效率. 零配置实现主要有以下两种方式: 惯例优先原则:也称为约定大于配置(convention ...

  5. HTML元素类别及转换

    位置特性分类元素分为三类:块级元素,行内元素,行级块元素 1.块级元素(block)        特点: (1)可以设置宽高.内.外边距:               (2)独占一行(即前后均有换行 ...

  6. Redis——redis使用redis-dump,redis-load导出导入数据——【三】

    来源 https://www.cnblogs.com/dadonggg/p/8662455.html https://blog.csdn.net/chenxinchongcn/article/deta ...

  7. Vue 快速入门

    Vue框架介绍 中文文档: https://cn.vuejs.org/v2/guide/ Vue是一个构建数据驱动的web界面的渐进式框架. 目标是通过尽可能简单的API实现响应式的数据绑定和组合的视 ...

  8. 个人整理的数组splay板子,指针的写的太丑了就不放了。。

    splay的板子.. 由于被LCT榨干了..所以昨天去学了数组版的splay,现在整理一下板子.. 以BZOJ3224和3223为例题..暂时只有这些,序列的话等有时间把维修序列给弄上来!! BZOJ ...

  9. python爬取豆瓣前25个影片内容的正则表达式练习

    通过python正则表达式获取豆瓣top250的第一页的25个影片排名,影片名字,影片连接,导演,主演,上映日期,国家,剧情,评分,评价人数的内容 网页html内容: <ol class=&qu ...

  10. opencv 图片剪切

    import cv2 as cv import numpy as np # 图片剪切 img = cv.imread('../images/moon.jpg', flags=1) # flags=1读 ...