zoukankan      html  css  js  c++  java
  • 【USACO 2019 January Silver】Mountain View题解

    题目:

    题目描述
    从农场里奶牛Bessie的牧草地向远端眺望,可以看到巍峨壮丽的山脉绵延在地平线上。山脉里由N座山峰(1≤N≤10^5)。如果我们把Bessie的视野想象成xy平面,那么每座山峰都是一个底边在x轴上的三角形。山峰的两腰均与底边成45度角,所以山峰的峰顶是一个直角。于是山峰i可以由它的峰顶坐标(xi,yi)精确描述。没有两座山峰有完全相同的峰顶坐标。
    Bessie尝试数清所有的山峰,然而由于它们几乎是相同的颜色,所以如果一座山峰的峰顶在另一座山峰的三角形区域的边界上或是内部,她就无法看清。
    请求出Bessie能够看见的不同的山峰的峰顶的数量,也就是山峰的数量。
    输入
    输入的第一行包含N。以下N行每行包含xi(0≤xi≤109)和yi(1≤yi≤109),描述一座山峰的峰顶的坐标。

    输出
    输出Bessie能够分辨出的山峰的数量。

    样例输入
    3
    4 6
    7 2
    2 5
    样例输出
    2

    提示
    在这个例子中,Bessie能够看见第一座和最后一座山峰。第二座山峰被第一座山峰掩盖了。

    思路:

    这可能类似以前的 一道题,那里我用的是STL模板,其实也能用堆做,但这都是优化,而这次这道题没法优化,可能数据太水,O(n^2)竟然过了。

    我的方法是先以高度排序(降序),然后依次遍历一遍,如果没被前面的山覆盖,那就ans++。

    可能有人会问,为什么要排序呢?我们可以想一想,高的山一定不可能被小的山覆盖,所以从高往低,可以算是一种优化吧?

    可能又有人会问,如何判断它是否被前面的山覆盖呢?很简单,遍历比它高的山且那座山没被覆盖,如果y1-abs(x-x1)>y,那么x,y这座山就被覆盖了。

  • 相关阅读:
    httprunner 3.x学习12
    httprunner 3.x学习11
    PyTorch中.view()与.reshape()方法以及.resize_()方法的对比
    算术编码简介
    量化参数QP:quantization parameter 以及 HEVC
    H.265/HEVC编码结构
    H.265 视频编码中的 CTU, CU, PU, TU
    I帧、P帧、B帧、GOP、IDR 和PTS, DTS之间的关系
    视频编码 率失真性能评价指标:PSNR SSIM BD-rate BD-PSNR
    矢量量化(VQ,Vector Quantization)
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13159900.html
Copyright © 2011-2022 走看看