按照先极角后距离的顺序排序,然后对每一个序列求一遍LIS, 累加起来就是结果

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
const int maxn = 1e6 + 10;
const int INF = 0x3f3f3f3f;
const double eps = 1e-8;
int dcmp(double x) {if (fabs(x) < eps) return 0;return x > 0 ? 1 : -1;
}
struct Node {int x, y, h;double angle;double dis;bool operator < (const Node &atr) const {if (dcmp(angle - atr.angle) != 0) return angle < atr.angle;return dis < atr.dis;}
}node[maxn];
vector<int> v[maxn];
int dp[maxn];
int cx, cy, n;
int main() {scanf("%d %d", &cx, &cy);scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d %d %d", &node[i].x, &node[i].y, &node[i].h);node[i].x -= cx, node[i].y -= cy;node[i].angle = atan2(node[i].y, node[i].x);node[i].dis = sqrt(1.0*node[i].x*node[i].x+1.0*node[i].y*node[i].y);}sort(node+1, node+1+n);int cnt = 0;for (int i = 1; i <= n; i++) v[i].clear();v[++cnt].push_back(node[1].h);for (int i = 2; i <= n; i++) {if (dcmp(node[i].angle - node[i-1].angle) != 0) ++cnt;v[cnt].push_back(node[i].h);}int ans = 0;for (int i = 1; i <= cnt; i++) {int len = v[i].size();for (int j = 0; j < len; j++) dp[j] = INF;for (int j = 0; j < len; j++) *lower_bound(dp, dp+len, v[i][j]) = v[i][j];ans += lower_bound(dp, dp + len, INF) - dp;}printf("%d\n", ans);return 0;
}

Gym - 101606L Lizard Lounge——LIS相关推荐

  1. 7033: Lounge Lizards(lis)

    7033: Lounge Lizards 时间限制: 10 Sec  内存限制: 128 MB 提交: 60  解决: 13 [提交] [状态] [讨论版] [命题人:admin] 题目描述 Moni ...

  2. UVa 10051 Tower of Cubes(类似LIS)

    题意: 一些重量递增而且各个面都有颜色的立方体,要将这些立方体堆成一个塔,要求两个接触面同色,而且下面的立方体更重.求塔的最大高度. 思路: 用求LIS的思想,无非是多了几个状态.dp[i][j]表示 ...

  3. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  4. Gym - 102082G

    Gym - 102082G https://vjudge.net/problem/2198225/origin 对于数列中任意一个数,要么从最左边到它不递减,要么从最右边到到它不递减,为了满足这个条件 ...

  5. 1045 Favorite Color Stripe(LIS解法)

    解题思路 本题属于Longest Increasing Sequence最长不下降子序列,但是要注意,LIS当中不会有无效的元素,而本题是有的,所以先要把无效元素过滤掉,才能转化成为LIS问题. 这里 ...

  6. 安装gym库_强化学习Gym库学习实践(一)

    最近看了一篇研究方向相关的文章,介绍了一种DQN的应用,感觉还挺新鲜的.想着把这篇文章复现出来,就开始学习强化学习的相关知识,作为一名小白,这一路走的可是真的十分艰难(我太菜了啊!) 看了莫烦Pyth ...

  7. LIS ZOJ - 4028

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4028 memset超时 这题竟然是一个差分约束 好吧呢 对于每一个a[i] ...

  8. 【hdu】4521 小明序列【LIS变种】【间隔至少为d】

    题目链接:https://vjudge.net/contest/228455#problem/B 转载于:https://blog.csdn.net/a709743744/article/detail ...

  9. HDU 1257 - 最少拦截系统 ( LIS / 贪心 )

    题目 现在有一种拦截系统,第一发拦截可以是任意高度,但是之后的拦截高度不能比上次高.为了拦截下所有的炮弹,最少需要准备几套拦截系统? 思路 可能是语文没学好吧,一开始被题意卡了一下.(而且题目连数据范 ...

最新文章

  1. iOS UICollectionViewCell 的拖动
  2. ajax get时不能更新页面的解决方法
  3. Leecode05. 最长回文子串——Leecode大厂热题100道系列
  4. BZOJ5093图的价值(斯特林数)
  5. 18awg线材最大电流_小米生态链拉车线:2.4A大电流,苹果MFi认证,高速充电不断裂...
  6. 温州服务器付费方式_新购买的服务器是选择包年包月还是按流量计费呢?
  7. TP LINK交换机 console 超级终端链接设置
  8. V-REP 插件教程
  9. 【实验技术笔记】细胞表型检测之细胞凋亡(Hoechst染色 + PI染色 + TUNEL 染色 + Annexin V-PI 双染)
  10. 闲聊人工智能产品经理(AIPM)—方法论
  11. 启动docker 报ERROR: failed to register layer: symlink
  12. 基于 HTML5 Canvas 的简易 2D 3D 编辑器
  13. CPU 缓存如何影响你的 Go 程序性能
  14. 程序员系列头像表情包一
  15. python笔记手册_《Python 学习手册》读书笔记
  16. v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义 | 百篇博客分析HarmonyOS源码
  17. 知识点滴 - 芯片主要封装类型介绍
  18. FastDFS文件系统单机环境搭建
  19. cmail 在redhat5.4 x64位安装
  20. Golang 027. 佩尔数列Pell(n)

热门文章

  1. JPA+Hibernate中常用的注解
  2. 基于hadoop平台hive数据库处理电影数据
  3. qt android图片自适应大小,Qt on Android:怎样适应不同的屏幕尺寸
  4. 判断一个数是否为完全数
  5. java word 颜色设置_如何在Java中为word文档(.doc或.docx)设置背景颜色(页面颜色)?...
  6. 一种Vin码扫描识别sdk技术
  7. java判断一个字符串对象是否在一个集合里面
  8. 连接 mysql 数据库的 失败_MySQL_连接MySQL数据库失败频繁的原因分析,连接mySQL数据库失败频繁,主 - phpStudy...
  9. 本轮大宗商品涨价:(背后原因分析)2021-09
  10. 如何利用手机云控系统来体现