1612: 刘备闯三国之桃园结义

Time Limit: 1000 MS  Memory Limit: 128 MB
Submit: 181  Solved: 12
[Submit][Status][Web Board]

Description

 

刘备(161年-223年6月10日),字玄德,东汉末年幽州涿郡涿县,西汉中山靖王刘胜的后代。刘备一生极具传奇色彩,早年颠沛流离、备尝艰辛最终却凭借自己的谋略终成一方霸主。那么在那个风云激荡的年代,刘备又是如何从一个卖草鞋的小人物一步一步成为蜀汉的开国皇帝呢?让我们一起拨开历史的迷雾,还原一个真实的刘备。

刘备心怀大志,当然不甘于当一个卖草鞋的小贩,于是离家闯荡江湖。恰好遇到志同道合的关羽、张飞二人,三人准备在桃园结义。但是在谁当大哥的问题上,关张并不服刘备当老大,二人环顾四周,灵机一动,给刘备提出如下问题:

当时的桃园游人摩肩接踵、然而春雨绵绵。桃园内有n个行人,和m个亭子,有些游客在亭子内躲雨,但也有一些行人在雨中漫步。关张表示:如果刘备能准确统计出有多少个人在雨中,那他们就认刘备当大哥。桃园可以看出二维平面坐标轴,行人为点,亭子为圆形。

刘备微微一笑,左顾右盼、前瞻后顾,然而算得头昏脑胀。做为刘备身边的小弟,又到了你替老大分担忧愁的时候了。

 

Input

第一行一个整数n(1<=n<=10^5),表示有n个行人

以下有n行,每行有n有两个整数x,y (0<=x,y<=10000),表示行人的坐标为(x,y)

接下来有一个整数m(1<=m<=20000),表示桃园中有m个亭子,亭子可以视为圆形。

以下m行,每行有3个整数x ,y ,r ,(0<=x,y<=10000, 1<=r<=100)表示亭子的中心坐标为(x,y),半径为r,亭子之间可以相交。

Output

输出在雨中行人的个数。

如果行人在亭子的边缘位置,也记为在亭子内。

Sample Input

5
0 0
100 0
0 100
100 100
50 50
1
0 0 50

Sample Output

4

HINT

 

Source

[Submit][Status][Web Board]

题目链接:

  http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1612

题目大意:

  图上有N个点,M个圆,圆可能相交,问N个点中不被任何圆覆盖到的点有多少个。

题目思路:

  【二分】

  首先将点按x坐标从小到大排序,再将圆按照x+r从小到大排序

  之后枚举每一个点,二分找到第一个x坐标包含到当前点x坐标的圆,之后开始往后判断,是否被圆覆盖。只要一被覆盖就break

  

 /****************************************************

     Author : Coolxxx
Copyright 2017 by Coolxxx. All rights reserved.
BLOG : http://blog.csdn.net/u010568270 ****************************************************/
#include<bits/stdc++.h>
#pragma comment(linker,"/STACK:1024000000,1024000000")
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define mem(a,b) memset(a,b,sizeof(a))
const double EPS=1e-;
const int J=;
const int MOD=;
const int MAX=0x7f7f7f7f;
const double PI=3.14159265358979323;
const int N=;
const int M=;
using namespace std;
typedef long long LL;
double anss;
LL aans;
int cas,cass;
int n,m,lll,ans;
bool in[N];
struct Point
{
int x,y;
}p[N];
struct Circle
{
int x,y,r;
}c[M];
bool cmp1(Point a,Point b)
{
if(a.x!=b.x)return a.x<b.x;
return a.y<b.y;
}
bool cmp2(Circle a,Circle b)
{
if((a.x+a.r)!=(b.x+b.r))return (a.x+a.r)<(b.x+b.r);
return a.r>b.r;
}
inline int dis(Point a,Circle b)
{
return sqr(a.x-b.x)+sqr(a.y-b.y);
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
int i,j,k;
int x,y,z;
// for(scanf("%d",&cass);cass;cass--)
// for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
// while(~scanf("%s",s))
while(~scanf("%d",&n))
{
ans=n;
for(i=;i<=n;i++)
scanf("%d%d",&p[i].x,&p[i].y);
sort(p+,p++n,cmp1);
scanf("%d",&m);
for(i=;i<=m;i++)
scanf("%d%d%d",&c[i].x,&c[i].y,&c[i].r);
sort(c+,c++m,cmp2);
int last=;
for(i=;i<=n;i++)
{
int l,r,mid;
l=last;r=m;
while(l<r)
{
mid=(l+r)/;
if(c[mid].x+c[mid].r>=p[i].x)r=mid;
else l=mid+;
}
last=l;
for(j=mid;j<=m;j++)
{
if(dis(p[i],c[j])<=sqr(c[j].r))
{
ans--;
break;
}
if(c[j].x-c[j].r>p[i].x)break;
}
}
printf("%d\n",ans);
}
return ;
}
/*
// //
*/

XMU 1612 刘备闯三国之桃园结义 【二分】的更多相关文章

  1. XMU 1617 刘备闯三国之汉中之战 【BFS+染色】

    1617: 刘备闯三国之汉中之战 Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 6  Solved: 5[Submit][Status][Web B ...

  2. XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】

    1615: 刘备闯三国之三顾茅庐(三) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 45  Solved: 8[Submit][Status][W ...

  3. XMU 1614 刘备闯三国之三顾茅庐(二) 【逆向思维+二维并查集】

    1614: 刘备闯三国之三顾茅庐(二) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 15  Solved: 5[Submit][Status][W ...

  4. XMU 1613 刘备闯三国之三顾茅庐(一) 【并查集】

    1613: 刘备闯三国之三顾茅庐(一) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 99  Solved: 29[Submit][Status][ ...

  5. XMU 1611 刘备闯三国之卖草鞋 【贪心】

    1611: 刘备闯三国之卖草鞋 Time Limit: 1000 MS  Memory Limit: 64 MBSubmit: 90  Solved: 48[Submit][Status][Web B ...

  6. XMU 1608 nc与加法进位 【二分】

    1608: nc与加法进位 Time Limit: 2000 MS  Memory Limit: 128 MBSubmit: 29  Solved: 27[Submit][Status][Web Bo ...

  7. 【最长下降子序列】【动态规划】【二分】XMU 1041 Sequence

    题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1041 题目大意: 一个二维平面,上面n(n<=1 000 000)个点.问至少选 ...

  8. 【二分】XMU 1587 中位数

    题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1587 题目大意: 求两个长度为n(n<=109)的有序序列合并后的中位数.序列中 ...

  9. 《BI那点儿事》Microsoft 决策树算法——找出三国武将特性分布,献给广大的三国爱好者们

    根据游戏<三国志11>武将数据,利用决策树分析,找出三国武将特性分布.其中变量包括统率.武力.智力.政治.魅力.身分.变量说明:统率:武将带兵出征时的部队防御力.统帅越高受到普通攻击与兵法 ...

随机推荐

  1. 【HIHOCODER 1052 】基因工程(贪心)

    链接 问题描述 小Hi和小Ho正在进行一项基因工程实验.他们要修改一段长度为N的DNA序列,使得这段DNA上最前面的K个碱基组成的序列与最后面的K个碱基组成的序列完全一致. 例如对于序列"A ...

  2. 数据结构实验6:C++实现二叉树类

    实验6 学号:     姓名:      专业:   6.1 实验目的 掌握二叉树的动态链表存储结构及表示. 掌握二叉树的三种遍历算法(递归和非递归两类). 运用二叉树三种遍历的方法求解有关问题. 6 ...

  3. Android开发——查询/杀死手机里正在运行的进程

    0. 前言 以前有同学好像做过一个叫"自习君"的App,开启后自动检测用户这一天的自习时间,在学校里宣传广告还打了不少.其实实现原理非常简单,在SQlite数据库(也可以通过文件) ...

  4. Python 迭代器&生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发

    本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - ...

  5. python020 Python3 OS 文件/目录方法

    os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: 序号 方法及描述 1 os.access(path, mode) 检验权限模式 2 os.chdir(path) 改变当前工作 ...

  6. XV内存变化

  7. 68. 使用thymeleaf报异常:Not Found, status=404【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 我们按照正常的流程编码好了 controller访问访问方法/hello,对应的是/templates/hello.html文件,但是在页面中还是 ...

  8. 相应缓存设置HttpCacheability 枚举

      成员名称 说明   NoCache 设置 Cache-Control: no-cache 标头.如果没有字段名,则指令应用于整个请求,且在满足请求前,共享(代理服务器)缓存必须对原始 Web 服务 ...

  9. 【贪心】HDU 最少拦截系统

    https://vjudge.net/contest/68966#problem/I [题解] http://www.cnblogs.com/kuangbin/archive/2012/08/03/2 ...

  10. ie6 js报错汇总

    假如ie6是一个非美女的人,那不知道为多少人乱刀砍多少次,假如不幸它是一个美女,那不知道要被多少人轮奸完之后还是乱刀砍死. ie6的js的错误说明总是很隐晦的,它喜欢和捉迷藏.报的行数和错误,常常不知 ...