[AHOI 2016初中组]迷宫
Description
小雪和小可可被困在了一个无限大的迷宫中。
已经知道这个迷宫有 N 堵环状的墙,如果把整个迷宫看作是一个二维平面,那么每一堵墙都是平面上一个圆。任意两个圆不相交,不重合,也不会相切, 但有可能相互包含。小雪和小可可分别被困在了 2 个不同的位置,且保证他们的位置与这些圆不重合。
他们只有破坏墙面才能穿过去。
小雪希望知道,如果他们要相见,至少要破坏掉多少堵墙?他们可以在任何位置相见。
Input
第一行有一个整数 N,表示有多少堵墙,保证 0<=N<=8000。
之后 N 行,每一行有三个整数 x, y 和 r,表示有一堵环状的墙是以(x,y)为圆形, r为半径的。保证-100000000<=x,y,r<=100000000。
再下一行有一个整数 Q,表示有多少组询问,保证 1<=Q<=8000。
之后 Q 行,每一行有 4 个整数 a, b, c 和 d,给出了一组询问,表示小雪所在的位置为(a,b),小可可所在的位置为(c,d)。保证-100000000<=a,b,c,d<=100000000。
Output
输出 Q 行,对应 Q 次询问,每一行输出一个整数,表示最小需要破坏掉多少堵墙才能相见。
Sample Input
3
0 0 1
3 0 1
2 0 4
1
0 0 3 0
Sample Output
2
Hint
对于 20%的数据, 0<=N<=200。
对于 40%的数据, 0<=N<=1000。
对于 100%的数据, 0<=N<=8000, 0<=Q<=8000。
此外,还有额外的 20%的数据,满足 0<=N<=1000, 0<=Q<=1000。
所有数绝对值不超过 100000000。
大数据点时限3s。
题解
水题一道...枚举所有的圆看是否同在园内或同在圆外...
//It is made by Awson on 2017.11.6
#include <map>
#include <set>
#include <cmath>
#include <ctime>
#include <queue>
#include <stack>
#include <cstdio>
#include <string>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define Max(a, b) ((a) > (b) ? (a) : (b))
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define sqr(x) ((x)*(x))
#define y1 yy
using namespace std;
const int N = ; int n, m;
struct circle {
LL x ,y, r;
}a[N+];
LL x1, x2, y1, y2; void work() {
scanf("%d", &n);
for (int i = ; i <= n; i++) scanf("%lld%lld%lld", &a[i].x, &a[i].y, &a[i].r);
scanf("%d", &m);
while (m--) {
int cnt = ; bool flag = ;
scanf("%lld%lld%lld%lld", &x1, &y1, &x2, &y2);
for (int i = ; i <= n; i++) {
flag = ;
if (sqr(x1-a[i].x)+sqr(y1-a[i].y) < sqr(a[i].r)) flag = !flag;
if (sqr(x2-a[i].x)+sqr(y2-a[i].y) < sqr(a[i].r)) flag = !flag;
cnt += flag;
}
printf("%d\n", cnt);
}
}
int main() {
work();
return ;
}
[AHOI 2016初中组]迷宫的更多相关文章
- [AHOI 2016初中组]自行车比赛
Description 小雪非常关注自行车比赛,尤其是环滨湖自行车赛.一年一度的环滨湖自行车赛,需要选手们连续比赛数日,最终按照累计得分决出冠军.今年一共有 N 位参赛选手.每一天的比赛总会决出当日的 ...
- [AHOI2016初中组]迷宫
题目描述 小雪和小可可被困在了一个无限大的迷宫中. 已经知道这个迷宫有 N 堵环状的墙,如果把整个迷宫看作是一个二维平面,那么每一堵墙都是平面上一个圆.任意两个圆不相交,不重合,也不会相切, 但有可能 ...
- 【学术篇】luogu2778 [AHOI2016初中组]迷宫(代码高能!)
好久好久我都没有刷题了. 题目の传送门:https://www.luogu.org/problem/show?pid=2778 题目大意:(啥 题目讲得不够清楚?)平面内有n个以整点(就是坐标都是整数 ...
- Java迷宫游戏
缘起: 去年(大三上学期)比较喜欢写小游戏,于是想试着写个迷宫试一下. 程序效果: 按下空格显示路径: 思考过程: 迷宫由一个一个格子组成,要求从入口到出口只有一条路径. 想了一下各种数据结构,似乎树 ...
- 用webgl打造自己的3D迷宫游戏
用webgl打造自己的3D迷宫游戏 2016/09/19 · JavaScript · WebGL 原文出处: AlloyTeam 背景:前段时间自己居然迷路了,有感而发就想到写一个可以让人迷路 ...
- Java与算法之(12) - 老鼠再闯迷宫(广度优先算法)
贪吃的小老鼠又回来了,这次有什么新的办法吃到奶酪呢? 规则不变,只能上下左右在格子内移动. 因为上次的深度优先算法让老鼠走了不少冤枉路,这次老鼠带来了帮手探路鼠.探路鼠的使用规则如下: 小老鼠按右.下 ...
- Be Better:遇见更好的自己-2016年记
其实并不能找到好的词语来形容过去的一年,感觉就如此平淡的过了!没有了毕业的稚气,看事情淡了,少了一丝浮躁,多了一分认真.2016也许就是那句话-多读书,多看报,少吃零食多睡觉,而我更愿意说--Be B ...
- Connect() 2016 大会的主题 ---微软大法好
文章首发于微信公众号"dotnet跨平台",欢迎关注,可以扫页面左面的二维码. 今年 Connect 大会的主题是 Big possibilities. Bold technolo ...
- “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman
美国时间 6月7日--9日,为期三天的微软.NET社区虚拟大会正式在 Channel9 上召开,美国时间6.9 是第三天, Scott Hanselman 做Keynote.今天主题围绕的是.NET ...
随机推荐
- C语言程序设计(基础)- 第2周作业
1.阅读提问的智慧,要求仔细阅读链接内容,用自己的话描述你的收获,并举例子说明应该如何提问. 2.所有同学请在自己电脑上配置git.编译器(win10 系统的话就Dev-C++).翻译软件,十一回校后 ...
- 20162330 实验一 《Java开发环境的熟悉》 实验报告
2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验一 <Java开发环境的熟悉> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623 ...
- 20162302 实验一《Java开发环境的熟悉》实验报告
实 验 报 告 课程:程序设计与数据结构 姓名:杨京典 班级:1623 学号:20162302 实验名称:Java开发环境的熟悉 实验器材:装有Ubuntu的联想拯救者80RQ 实验目的与要求:1.使 ...
- LoadRunner录制手机APP教程
1. 开启fiddler 2. 打开HP Virtual User Generator,新建->Web (HTTP/HTML)>创建 3. 点击开始录制: (1) ...
- Junit 4 测试中使用定时任务操作
难度:测试中执行线程操作 package com.hfepc.job.dataCollection.test; import java.util.Date; import java.util.List ...
- c#+wpf项目性能优化之OutOfMemoryException解密
近期,使用c#+wpf开发的软件准备正式投入使用了,使用前进行了大量的测试,测试后发现了一些问题,其中最让人头疼的就是软件的性能问题(稳定性). 这里的稳定性具体表现在机器的cpu占有率和内存使用情况 ...
- SpringCloud的应用发布(二)vmvare+linux,Centos7.0下发布应用
一.运行环境 1.jdk下载安装 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 检查是否有老版本jdk 如 ...
- Linux进程管理:后台启动进程和任务管理命令
一.为什么要使程序在后台执行 我们的应用有时候要运行时间很长,如:几个小时甚至几个星期,我们可以让程序在后台一直跑. 让程序在后台运行的好处有: 终端关机不影响后台进程的运行.(不会终端一关机或者网络 ...
- NHibernate优点和缺点:
NHibernate优点: 1.完全的ORM框架. NHibernate对数据库结构提供了较为完整的封装,它将数据库模式映射为较完全的对象模型,支持封装,继续机制,功能较强大,比一般的ORM灵活性高. ...
- Spring之AOP编程
一.AOP简介 AOP的英文全称是Aspect Oriented Programming,意为:面向切面编程. AOP采取横向抽取的机制,取代了传统纵向继承体系的代码复用.AOP常用于 ...