博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj千题计划176:bzoj1199: [HNOI2005]汤姆的游戏
阅读量:6820 次
发布时间:2019-06-26

本文共 1246 字,大约阅读时间需要 4 分钟。

 

求出圆x的范围

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

枚举图形

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

枚举这段区间内的每个点

圆判断到圆心的距离

矩形判断y

 

代码不是我的~~~

 

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

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/8168724.html

你可能感兴趣的文章
利用SVN的post-commit钩子实现多项目自动同步
查看>>
linux 的ping 命令
查看>>
java基础
查看>>
反射之获取类,方法等
查看>>
TechEd 2012 微软技术大会简介
查看>>
ajax框架之DWR项目运行报错之org.apache.commons.logging.LogFactory
查看>>
终端市场消费减少
查看>>
鲜果CEO梁公军:Google Reader的用户是我们很看重的机会
查看>>
cocos2d-x3.0beta版+NDK-r9b在android上的启动过程
查看>>
基于Spring MVC+Spring JPA技术实战开发大型商业ERP项目教程
查看>>
黑马程序员_进程和线程的区别
查看>>
DHCP原理与实例
查看>>
类的虚继承
查看>>
MySQL批量删除指定前缀表
查看>>
JDK与TOMCAT安装
查看>>
将屏幕的全部输出存到文件 转
查看>>
postgresql学习笔记(五)备份与恢复
查看>>
从SCCM中创建并运行Powershell脚本卸载软件
查看>>
【java解惑】java字符串替换方法使用
查看>>
条件查询detachedCriteria的使用
查看>>