HDU 5298 Solid Geometry Homework 暴力
Solid Geometry Homework
题目连接:
http://acm.hdu.edu.cn/showproblem.php?pid=5298
Description
Yellowstar is studying solid geometry recently,and today’s homework is about the space,plane and sphere.So he draw many planes and spheres in the draft paper.These infinite planes and (the surface of)spheres divides the whole drawing space(which can be considered as a infinite 3D-space) into many disjoint regions.Planes and spheres forms the borders of these regions,and they don’t belong to any regions.
Then he comes up with a crazy idea:color the whole space with crayons.He wants that one region has only one color,and two adjacent regions should be colored differently (“adjacent” means the area of two regions’ common borders is greater than zero).Unfortunately,he has only two crayons:a yellow one and a red one.
Yellowstar likes yellow very much,so he gives some coordinates.The regions these points belong to should be colored yellow.
Given positions of all the planes and spheres and the coordinates mentioned above.You should determine:Is there a way to satisfy all the requests?Yellowstar also gives some other coordinates.He wants to know which color they will be while all the requests are satisfied.
Input
The first line contains an integer T,denoting the number of the test cases.
For each test case, the first line contains 4 integers m,n,p and q, denoting the number of planes,spheres,points and queries.
Then m lines follows,each containing four integers a,b,c and d,denoting the linear equation(ax+by+cz+d=0) of this plane.|a|+|b|+|c|>0.
Then n lines follows,each containing four integers x,y,z and r,denoting the center coordinate(x,y,z) and radius of this sphere.
Then p lines follows, each containing three integers x,y,z,denoting point(x,y,z),the region it belongs to should be colored yellow.
Next q lines are queries.Each contains three integers x,y,z-the coordinate of this point.You need to output which color it will be.
T<=30,0<=m<=100,0<=n<=10,0<=p<=200,1<=q<=2000,|all given numbers|<=10^6,any two planes or spheres aren’t coincidence.No point lies on given planes or spheres.
There is a blank line before each case.
Output
For each case,if there is no such a coloring way to color the whole space and meet all the requests,print“Impossible”.
Otherwise,for each query,print a line.If the color of this point can be certainly inferred,print it(’Y’ for yellow or ’R’ for red);if not(both are possible),print”Both”.
Print a blank line between adjacent cases.
Sample Input
3
1 1 1 2
0 0 1 0
0 0 0 2
0 0 1
0 0 -1
0 0 4
1 1 2 1
0 0 1 0
0 0 0 2
0 0 1
0 0 -1
0 0 4
1 1 0 2
0 0 1 0
0 0 0 2
0 0 4
0 0 -1
Sample Output
R
R
Impossible
Both
Both
Hint
题意
在一个三维平面上有一堆平面,有一堆圆,然后这些玩意儿把平面切成了很多块。
然后每一块要么是红色,要么是黄色。
相邻的两块颜色不同。
现在已知p个点的颜色是黄色。
然后问你接下来q个点的颜色是啥。
题解:
首先其实这个空间的颜色分布已经被那p个点唯一确认了。
所以我们只要知道一个区域的颜色就好了。
因为只有两种颜色,判断一个点的颜色只要知道和这些圆的位置关系和这些平面的位置关系就好了。
然后这道题就结束了……
大概就是这样 喵。
代码
#include<bits/stdc++.h>
using namespace std;
struct node
{
long long a,b,c,d;
}plane[120],circle[12],P[2005],P2[205];
int n,m,p,q;
int check_plane(node A,node B)
{
return A.a*B.a+A.b*B.b+A.c*B.c+A.d>0?1:0;
}
int check_cirle(node A,node B)
{
return (A.a-B.a)*(A.a-B.a)+(A.b-B.b)*(A.b-B.b)+(A.c-B.c)*(A.c-B.c)>A.d*A.d?1:0;
}
int check(node a)
{
int ans = 0;
for(int i=0;i<m;i++)
ans^=check_plane(plane[i],a);
for(int i=0;i<n;i++)
ans^=check_cirle(circle[i],a);
return ans;
}
void solve()
{
scanf("%d%d%d%d",&m,&n,&p,&q);
for(int i=0;i<m;i++)
scanf("%lld%lld%lld%lld",&plane[i].a,&plane[i].b,&plane[i].c,&plane[i].d);
for(int i=0;i<n;i++)
scanf("%lld%lld%lld%lld",&circle[i].a,&circle[i].b,&circle[i].c,&circle[i].d);
if(p==0){
for(int i=0;i<q;i++)
{
scanf("%lld%lld%lld",&P[i].a,&P[i].b,&P[i].c);
printf("Both\n");
}
return;
}
for(int i=0;i<p;i++)
scanf("%lld%lld%lld",&P2[i].a,&P2[i].b,&P2[i].c);
for(int i=0;i<q;i++)
scanf("%lld%lld%lld",&P[i].a,&P[i].b,&P[i].c);
int flag = check(P2[0]);
for(int i=0;i<p;i++)
if(check(P2[i])^flag==1)
{
printf("Impossible\n");
return;
}
for(int i=0;i<q;i++)
{
if(check(P[i])^flag==1)
printf("R\n");
else
printf("Y\n");
}
}
int main()
{
int t;scanf("%d",&t);
while(t--)
{
solve();
if(t)puts("");
}
return 0;
}
HDU 5298 Solid Geometry Homework 暴力的更多相关文章
- HDU 2920 分块底数优化 暴力
其实和昨天写的那道水题是一样的,注意爆LL $1<=n,k<=1e9$,$\sum\limits_{i=1}^{n}(k \mod i) = nk - \sum\limits_{i=1}^ ...
- hdu 4932 Miaomiao's Geometry(暴力枚举)
pid=4932">Miaomiao's Geometry ...
- hdu 5277 YJC counts stars 暴力
YJC counts stars Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...
- HDU 5762 Teacher Bo (暴力)
Teacher Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5762 Description Teacher BoBo is a geogra ...
- hdu 4712 Hamming Distance(随机函数暴力)
http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...
- hdu 4876 ZCC loves cards(暴力)
题目链接:hdu 4876 ZCC loves cards 题目大意:给出n,k,l,表示有n张牌,每张牌有值.选取当中k张排列成圈,然后在该圈上进行游戏,每次选取m(1≤m≤k)张连续的牌,取牌上值 ...
- HDU 5442 Favorite Donut(暴力 or 后缀数组 or 最大表示法)
http://acm.hdu.edu.cn/showproblem.php?pid=5442 题意:给出一串字符串,它是循环的,现在要选定一个起点,使得该字符串字典序最大(顺时针和逆时针均可),如果有 ...
- HDU 5273 Dylans loves sequence 暴力递推
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5273 bc:http://bestcoder.hdu.edu.cn/contests/con ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6152 Friend-Graph 暴暴暴暴力
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6152 题意:判定一个无向图是否有三个点的团或者三个点的独立集. 解法:Ramsey theorem,n ...
随机推荐
- IT人员必备linux安全运维之Ssh用途、安全性、身份认证以及配置……【转】
SSH一般用途 提供shell,解决telnet不安全的传输 1.修改默认ssh默认端口 vi /etc/ssh/sshd_config 修改之后重启 >systemctl restart ss ...
- 148.Sort List---链表排序(冒泡、归并)
题目链接 题目大意:对链表进行排序,要求时间复杂度是o(nlgn). 法一:冒泡,不交换结点,而交换结点中的数值.超时了.代码如下: public ListNode sortList(ListNode ...
- VI编辑,配置文件
1,VI编辑 vi 分为3种模式 1>一般模式: [Ctrl + f ] 下一页 [Ctrl + b ] 上一页 [n+ enter] 向下移动n行 eg:2 ...
- 打开exls表格时报‘向程序发送命令是出现问题’的错误的解决方法
1.问题现象 打开表格文件时系统报如下错误 2.解决方法 1)按照如下方法找到excel选项,点击进入 2)找到‘忽略使用动态数据交换(DDE)的其它应用程序(O)',去掉复选框种的勾,点击确定,重新 ...
- 基于TCP协议的聊天室控制台版
我之前写过一篇博客,主要是基于TCP协议实现的聊天室swing版,在此再写一个基于TCP协议实现的聊天室控制台版,便于学习和比较. package 聊天室console版.utils; import ...
- final修饰的变量是引用不能改变还是引用的对象不能改变
我们都知道final修饰变量时 会变为常量,但是使 用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 下面让我们来看这段代码: /** * 验证final修饰的变量是引用不能变, ...
- js完成密码输入为空,和两次输入不一致
<!DOCTYPE html><html><body> <script language="javascript"> functio ...
- HDU 3342 Legal or Not(拓扑排序判断成环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 题目大意:n个点,m条有向边,让你判断是否有环. 解题思路:裸题,用dfs版的拓扑排序直接套用即 ...
- SGU 209. Areas
209. Areas time limit per test: 0.25 sec.memory limit per test: 65536 KB input: standardoutput: stan ...
- loadrunner可用许可证
global-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGIweb-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGBglobal-10 ...