http://www.lydsy.com/JudgeOnline/problem.php?id=1199

求出圆x的范围

把要判断的点按x从小到大排序

枚举图形

二分出x满足这个图形的一段区间

枚举这段区间内的每个点

圆判断到圆心的距离

矩形判断y

代码不是我的~~~

#include<bits/stdc++.h>
#define N 1000010
using namespace std;
const double eps=1e-;
struct node
{
double x1,x2,y1,y2;
double x,y,r;
char c;
bool friend operator < (node a,node b)
{
return a.x1<b.x1;
}
}a[N];
char s[];
int out[N];
struct point
{
double x,y;
int num;
}e[N];
int n,m;
double sqr(double x)
{
return x*x;
}
bool pd(double x1,double y1,double x,double y,double r)
{
return sqr(x-x1)+sqr(y-y1)<sqr(r);
}
bool cmp(point a,point b)
{
return a.x<b.x;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%s",s+);
if(s[]=='r')
{
scanf("%lf%lf%lf%lf",&a[i].x1,&a[i].y1,&a[i].x2,&a[i].y2);
if(a[i].x1>a[i].x2) swap(a[i].x1,a[i].x2),swap(a[i].y1,a[i].y2);
a[i].c=s[];
}
else
{
scanf("%lf%lf%lf",&a[i].x,&a[i].y,&a[i].r);
a[i].x1=a[i].x-a[i].r;a[i].x2=a[i].x+a[i].r;
a[i].c=s[];
}
}
for(int i=;i<=m;i++) scanf("%lf%lf",&e[i].x,&e[i].y),e[i].num=i;
sort(e+,e+m+,cmp);
for(int i=;i<=n;i++)
{
int ll=-,rr=-;
int l=,r=m;
while(l<=r)
{
int mid=l+r>>;
if(e[mid].x>a[i].x1)
{
ll=mid;
r=mid-;
}
else l=mid+;
}
l=,r=m;
while(l<=r)
{
int mid=l+r>>;
if(e[mid].x<a[i].x2)
{
rr=mid;
l=mid+;
}
else r=mid-;
}
if(ll==- || rr==-) continue;
for(int j=ll;j<=rr;j++)
{
if(a[i].c=='c')
{
if(pd(e[j].x,e[j].y,a[i].x,a[i].y,a[i].r)) out[e[j].num]++;
}
else
{
if(e[j].y<a[i].y2&&e[j].y>a[i].y1) out[e[j].num]++;
}
}
}
for(int i=;i<=m;i++)
cout<<out[i]<<"\n";
return ;
}

bzoj千题计划176:bzoj1199: [HNOI2005]汤姆的游戏的更多相关文章

  1. bzoj千题计划202:bzoj3191: [JLOI2013]卡牌游戏

    http://www.lydsy.com/JudgeOnline/problem.php?id=3191 每个人获胜的概率只与其在排列中与庄家的相对位置有关 dp[i][j] 还剩i个人时,从庄家数第 ...

  2. BZOJ 1199: [HNOI2005]汤姆的游戏 计算几何暴力

    1199: [HNOI2005]汤姆的游戏 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  3. 洛谷 P2313 [HNOI2005]汤姆的游戏 题解

    P2313 [HNOI2005]汤姆的游戏 题目描述 汤姆是个好动的孩子,今天他突然对圆规和直尺来了兴趣.于是他开始在一张很大很大的白纸上画很多很多的矩形和圆.画着画着,一不小心将他的爆米花弄撒了,于 ...

  4. 几何【P2313】 [HNOI2005]汤姆的游戏

    顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述--->p2313 [HNOI]汤姆的游戏 分析 说不上是分析. 数据范围给出来,这题明显暴力啊emmm. 个人认为的坑点. 这题不 ...

  5. bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块

    http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...

  6. 1199: [HNOI2005]汤姆的游戏 - BZOJ

    Description 汤姆是个好动的孩子,今天他突然对圆规和直尺来了兴趣.于是他开始在一张很大很大的白纸上画很多很多的矩形和圆.画着画着,一不小心将他的爆米花弄撒了,于是白纸上就多了好多好多的爆米花 ...

  7. P2313 [HNOI2005]汤姆的游戏

    题目描述 汤姆是个好动的孩子,今天他突然对圆规和直尺来了兴趣.于是他开始在一张很大很大的白纸上画很多很多的矩形和圆.画着画着,一不小心将他的爆米花弄撒了,于是白纸上就多了好多好多的爆米花.汤姆发现爆米 ...

  8. bzoj千题计划196:bzoj4826: [Hnoi2017]影魔

    http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...

  9. bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

随机推荐

  1. 浅谈iOS 自动调节文本高度

    文字展示是任何GUI开发的一个最常规的编程任务.可能一提及文字我们脑中想到的无非就是 Label 和 Text 这两个关键词,今天我们就谈谈 Label. 无论在 Windows 或者 Web 开发中 ...

  2. mvc5.0-路由

    :first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...

  3. 《HTTP权威指南》读书笔记:缓存

    缓存的定义 Web缓存是可以自动保存常见文档副本的HTTP设备(包括浏览器?) 缓存的作用 减少冗余数据传输 缓解带宽瓶颈(很多网络为本地网络客户端提供的带宽比为远程服务器提供的带宽要宽) 缓解瞬时拥 ...

  4. 前端项目模块化的实践3:使用 TypeScript 的收益

    以下是关于前端项目模块化的实践,包含以下内容: 搭建 NPM 私有仓库管理源码及依赖: 使用 Webpack 打包基础设施代码: 使用 TypeScript 编写可靠类库 使用 TypeScript ...

  5. JQ_返回顶部

    $(function(){ $('#goto_top_btn').click(function() {var s = $(window).scrollTop(),h = $(window).heigh ...

  6. Dive查看docker镜像层信息

    1.主要采用docker运行dive的方式,不然宿主机还要安装go那些挺麻烦的.具体用法可查看官方: https://github.com/wagoodman/dive 2.拉取dive镜像 dock ...

  7. Catlike学习笔记(1.3)-使用Unity画更复杂的3D函数图像

    第三篇来了-今天去参加了 Unite 2018 Berlin,感觉就是....非常困...回来以后稍微睡了下清醒了觉得是时候认真学习下了,不过讲的很多东西都是还没有发布或者只有 Preview 的版本 ...

  8. Arcengine效率探究之一——属性的读取(转载)

    http://blog.csdn.net/lk103852503/article/details/6566652 在写一个对属性表的统计函数时,发现执行速度奇慢无比,百思不得其解,其实算法并不复杂,后 ...

  9. 一份超全超详细的 ADB 用法大全

    http://blog.csdn.net/u010375364/article/details/52344120

  10. Linux读书笔记第一周

    1.Unix内核的特点:简洁:抽象:可移植性:进程创建:清晰的层次化结构. Linux内核是一种自由/开源的软件,设计思想与Unix系统相似(一切皆文件,特定的单一用途 & 简单的组合方式) ...