NOIP 2017 D2T1 奶酪
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
typedef struct node {
double x,y,z;
} qiu;
qiu a[1005];
bool cmp(qiu aa,qiu bb) {
return aa.z < bb.z ;
}
double dis(qiu p1,qiu p2) {
return sqrt(pow((p1.x -p2.x ),2)+pow((p1.y -p2.y ),2)+pow((p1.z -p2.z ),2));
}
bool flag;
long long n;
double h,r;
bool b[1005];
long long link[1005][1005];
bool fail[1005];
//void dfs(long long id) {
// if(flag) return;
// long long i;
// for(i=1; i<=n; i++) {
// if(i==id) continue;
// if(!b[i]&&link[id][i]<=2*r) {
// b[i]=1;
// if(a[i].z + r >=h){
// return;
// }else{
// dfs(i);
// }
//
// b[i]=0;
// }
// }
//}
void dfs(long long id,long long sum) {
if(flag) return;
if(sum + r >= h) {
flag=1;
return;
}
register int i;
for(i=1; i<=n; i++) {
if(i==id) continue;
if(!b[i]&&link[id][i]<=2*r&&!fail[i]) {
b[i]=1;
dfs(i,a[i].z);
b[i]=0;
fail[i]=1;
}
}
}
int main() {
long long t;
// freopen("test.in","r",stdin);
// freopen("cheese.out","w",stdout);
scanf("%lld",&t);
while(t--) {
memset(b,0,sizeof(b));
memset(fail,0,sizeof(fail));
bool succ=0;
scanf("%lld%lf%lf",&n,&h,&r);
for(long long i=1; i<=n; i++) {
scanf("%lf%lf%lf",&a[i].x ,&a[i].y ,&a[i].z );
}
sort(a+1,a+1+n,cmp);
for(register int i=1; i<=n; i++) {
for(long long j=1; j<=n; j++) {
link[i][j]=dis(a[i],a[j]);
link[j][i]=dis(a[i],a[j]);
}
}
// for(long long i=1;i<=n;i++){
// cout<<a[i].x <<" "<<a[i].y <<" "<<a[i].z <<endl;
// }
for(register int i=1; i<=n; i++) {
if(abs(a[i].z )-r>0) break;
else {
// cout<<i<<endl;
flag=0;
dfs(i,a[i].z);
if(flag) {
cout<<"Yes"<<endl;
succ=1;
break;
}
}
}
if(!succ) cout<<"No"<<endl;
// if(abs(a[1].z) - r >0) {
// cout<<"No"<<endl;
// continue;
// } else {
// flag=0;
// dfs(1);
// if(flag==1){
// cout<<"Yes"<<endl;
// continue;
// }
// }
}
return 0;
}
NOIP 2017 D2T1 奶酪的更多相关文章
- NOIP 2017 解题报告
---恢复内容开始--- NOIP 2017 的题真的很难啊,怪不得当年我这个萌新爆零了(当然现在也是萌新)越学越觉得自己什么都不会. 想要成为强者要把这些好题都弄懂弄透 至少现在6道题我都比较陌生 ...
- NOIP 2017 列队 - Splay - 树状数组
题目传送门 传送点I 传送点II 题目大意 (家喻户晓的题目应该不需要大意) (我之前咋把NOIP 2017打成了NOIP 2018,好绝望) Solution 1 Splay 每行一颗Splay,没 ...
- 【游记】NOIP 2017
时间:2017.11.11~2017.11.12 地点:广东省广州市第六中学 Day1 T1:看到题目,心想这种题目也能放在T1? 这个结论我之前遇到过至少3次,自己也简单证明过.初见是NOIP200 ...
- noip 2018 d2t1 旅行
noip 2018 d2t1 旅行 (题目来自洛谷) 给定n个城市,m条双向道路的图, 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路.并且, 从任意一个城市出发,通过这些道路 ...
- NOIP 2017 小凯的疑惑
# NOIP 2017 小凯的疑惑 思路 a,b 互质 求最大不能表示出来的数k 则k与 a,b 互质 这里有一个结论:(网上有证明)不过我是打表找的规律 若 x,y(设x<y) 互质 则 : ...
- 历年真题 未完成(Noip 2008 - Noip 2017)
Noip 2008 :全部 Noip 2009 :全部 Noip 2010 :AK Noip 2011 :AK Noip 2012 : Vigenère 密码,国王游戏,开车旅行 Noip 2013 ...
- 「NOIP 2017」列队
题目大意:给定一个 $n times m$ 的方阵,初始时第 $i$ 行第 $j$ 列的人的编号为 $(i-1) times m + j$,$q$ 次给出 $x,y$,让第 $x$ 行 $y$ 列的人 ...
- 洛谷 P3951 NOIP 2017 小凯的疑惑
洛谷 P3951 NOIP 2017 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付 ...
- NOIp 2017 奶酪 【并查集】 By cellur925
题目传送门 Orz去年考场上做这道题的我应该还在抱怨没学过空间几何,不一会太困了就开始打瞌睡,然后为了防止睡觉开始在devc++上写默写离骚(逃 思路:如果两个空洞相交,那么把他们并在一个集合里.最后 ...
随机推荐
- 类的property特性
目录 什么是 property特性 简单示例 property属性的两种方式 装饰器 类属性方式 property+类的封装 应用 私有属性添加getter和setter方法 使用property升级 ...
- ISCC 2018线上赛 writeup
今天有机会去ISCC2018参加了比赛,个人的感受是比赛题目整体难度不高,就是脑洞特别大,flag形式不明确,拿到flag后也要猜测flag格式,贼坑 废话不多说,以下是本人的解题思路 MISC 0x ...
- ZROI提高组模拟赛05总结
ZROI提高组模拟赛05总结 感觉是目前为止最简单的模拟赛了吧 但是依旧不尽人意... T1 有一半的人在30min前就A掉了 而我花了1h11min 就是一个简单的背包,我硬是转化了模型想了好久,生 ...
- 求N之下的所有素数
No.1 f=lambda n: [x for x in range(1,n) if not [y for y in range(2,x) if x%y ==0 ]] No.2 def prime(n ...
- Jackson 动态过滤属性,编程式过滤对象中的属性
场景:有时候我们做系统的时候,比如两个请求,返回同一个对象,但是需要的返回字段并不相同. 常见与写前端接口的时候,尤其是手机端,一般需要什么数据就返回什么样的数据.此时对于返回同一个对象我们就要动态过 ...
- [github][https模式下提交记住密码]
git版本 1.7.9以后 1. 开启 git config --global credential.helper cache 2. 设置时间 git config credential.helpe ...
- 再看SpringMVC通过一个DispatcherServlet处理Servlet
初始入口: org.springframework.web.context.ContextLoaderListener org.springframework.web.context.ContextL ...
- 我的NopCommerce之旅(2): 系统环境及技术分析
一.系统环境 IIS7.0 or above ASP.NET 4.5(MVC 5.0) .NET Framework 4.5.1 or above VS 2012 or above 二.架构设计 Pl ...
- Oracle 修改密码(忘记登录密码,用户System)
1.修改计算机环境变量,把oracle服务端路径放在最前面 2.输入cmd 3.输入命令:sysplus /nolog SQL>conn sys/syspwd as sysdba SQL> ...
- 代码中看见一共8个变量参数{SEO,0,0,0,0,0,0,0} 解读!{Top,0,0,0,0,0,0,Top}{Nav,0,0,0,0,0,0,Nav}
代码中看见{SEO,0,0,0,0,0,0,0}{Top,0,0,0,0,0,0,Top}{Nav,0,0,0,0,0,0,Nav}解读! 举个例子: {GetNew,977,0,23,500,0,0 ...