【BZOJ4660】Crazy Rabbit 结论+DP
【BZOJ4660】Crazy Rabbit
Description
Input
Output
Sample Input
0 6
-7 -4
-3 -2
7 -5
-2 3
8 -3
Sample Output
【样例1解释】
选择第 1, 2, 6, 4 只兔子即可。
题解:神题,先%一发达哥的题解:http://www.cnblogs.com/liu-runda/p/6701557.html。
下面只说如何处理区间不包含。先将所有区间按l排序,然后枚举左端点i,将所有li<lj<ri的区间j都拿出来,然后求出这些区间关于r的最长上升子序列即可。最长上升子序列可以采用基于upper_bound的nlogn的做法,详见代码。
烦人的是,这是一个环,在环上比较大小是一件十分捉鸡的事情。。。还是详见代码吧。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#define pi acos(-1.0)
using namespace std;
const int maxn=2010;
struct qj
{double l,r;
}p[maxn];
int n,m,ans;
double R;
double q[maxn],sta[maxn];
bool cmp(const qj &a,const qj &b)
{return (a.l==b.l)?(a.r<b.r):(a.l<b.l);
}
int LIS()
{int top=0,i;sta[++top]=q[1];for(i=2;i<=m;i++){if(q[i]>sta[top]) sta[++top]=q[i];else{int t=upper_bound(sta+1,sta+top+1,q[i])-sta;sta[t]=q[i];}}return top;
}
int main()
{scanf("%d%lf",&n,&R);int i,j;for(i=1;i<=n;i++){double a,b,c,d;scanf("%lf%lf",&a,&b);c=atan2(b,a),d=acos(R/sqrt(a*a+b*b));p[i].l=c-d,p[i].r=c+d;if(p[i].l<=-pi) p[i].l+=2*pi;if(p[i].r>pi) p[i].r-=2*pi;if(p[i].l>p[i].r) swap(p[i].l,p[i].r);}sort(p+1,p+n+1,cmp);for(i=1;i<=n;i++){for(m=0,j=i+1;j<=n;j++) if(p[j].l<=p[i].r&&p[j].r>p[i].r) q[++m]=p[j].r;ans=max(ans,LIS()+1);}printf("%d",ans);return 0;
}
转载于:https://www.cnblogs.com/CQzhangyu/p/7670028.html
【BZOJ4660】Crazy Rabbit 结论+DP相关推荐
- bzoj 4660 Crazy Rabbit——LIS解决“相交”限制的思想
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4660 想到一个点可以用它与圆的两个切点表示.并想到可以把切点极角排序,那么就变成环上的一些区 ...
- bzoj3663/4660CrazyRabbit bzoj4206最大团
题意 给出平面上N个点的坐标,和一个半径为R的圆心在原点的圆.对于两个点,它们之间有连边,当且仅当它们的连线与圆不相交.求此图的最大团. 点数<=2000,坐标的绝对值和半径<=5000. ...
- 关于dpi、dp与sp的基础了解
做android开发还有面试的时候经验会遇到屏幕适配问题,Android由于机型太多,所以导致屏幕尺寸还有分辨率多样化.接下来讲解下DP.DPI.SP的概念,有些不对的地方欢迎指正 引用Andorid ...
- LeetCode DP基础
简单DP lc.509 斐波那契 滑动窗口 class Solution {public:int fib(int n) {int a = 0 , b = 1 , c ;if(n == 0) retur ...
- GDKOI 2016 总结
前言 这是第一次去GDKOI,本着锻(bei)炼(nue)的心态出来见世面.但是自从去年参加GDOI去打酱油连奖都没拿被虐飞(悲伤的故事),我就决定要尽自己所能把比赛做好.可是紧接着的NOIP又是一个 ...
- noip2017考前整理(未完)
快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...
- LeetCode-91.解码方法
一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数. 示例 1 ...
- Educational Codeforces Round 141 (Rated for Div. 2) 赛时口胡思路(青大acmer训练日常)小上一波分
我的主页 A. Make it Beautiful 题意是是否能够重排序列满足aiaiai不等于前i-1个数的和.赛时思路,当时读题看花眼了好几次,好不容易读懂题,脑子手玩时发现只有第一项和第二项才会 ...
- unity3d 取锚点位置_怎么才是理想的点茶奶茶加盟店址呢?
CRAZY RABBIT 理 选 想 址 点茶 如何选择 前 言 奶茶店,已经连续几年成为年轻人创业投资的选择,很多人也动了开一家点茶加盟店的心思.大家都知道由于奶茶加盟店的特点店面位置非常重要,那怎 ...
最新文章
- Python中遍历字符串和字典
- 新趋势:数据驱动的销售
- 视频专辑:轻松学习flash动画制作视频教程
- 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
- Regular expressions in lexing and parsing(翻译)
- 【报告分享】2021年中国企业直播成长路径研究报告.pdf(附下载链接)
- 用WSL安装Docker镜像
- php admin_priv,ECshop后台开发模块步骤
- oracle 模拟 mysql,mysql通过表和function模拟oracle的sequence
- 2019第十届蓝桥杯国赛c++B组真题
- Python学习笔记(7)文件读写2 Numpy
- 【python教程入门学习】Python字典及基本操作(超级详细)
- Mac浏览器提示安装证书错误,如何修复 Mac 上的无效证书错误
- ERROR: sdl2 requested but not found
- 阿里云产品试用更新,产品组合试用装更划算,快来免费上云吧
- python Numpy模块汇总(字母排序) 备注:内容很多,用control/command(Mac系统)+ F可以在网页内关键词查找,希望你能找到想要的内容
- qt快速读取excel
- 拼多多活动期间流量布局-四川万顿思
- mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统
- 晋升项目经理一个月,我想离职.........