这题终于是正经第一题感觉了。

只需要对相交或相切的球建一条边,然后对所有与底面有交点的球连边,再对所有与顶面有交点的球连边,bfs判断上下连通性即可。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstdlib>
  4. #include<algorithm>
  5. #include<cstring>
  6. #include<cmath>
  7. #include<queue>
  8. using namespace std;
  9. typedef long long ll;
  10. struct point
  11. {
  12. long long x,y,z;
  13. }p[];
  14. bool v[];
  15. double c(point a,point b)
  16. {
  17. return sqrt(1ll*(a.x-b.x)*(a.x-b.x)+1ll*(a.y-b.y)*(a.y-b.y)+1ll*(a.z-b.z)*(a.z-b.z));
  18. }
  19. int head[],cnt;
  20. struct node
  21. {
  22. int to,nex;
  23. }e[];
  24. void add(int x,int y)
  25. {
  26. e[++cnt].to=y;e[cnt].nex=head[x];head[x]=cnt;
  27. }
  28. queue<int>q;int n,h,r;
  29. bool bfs()
  30. {
  31. memset(v,,sizeof(v));
  32. while(!q.empty())q.pop();
  33. q.push();v[]=;
  34. while(!q.empty())
  35. {
  36. int x=q.front();q.pop();if(x==n+)return ;
  37. for(int i=head[x];i;i=e[i].nex)
  38. {
  39. int y=e[i].to;
  40. if(v[y])continue;
  41. q.push(y);v[y]=;
  42. }
  43. }
  44. return ;
  45. }
  46. int main()
  47. {
  48. //freopen("cheese.in","r",stdin);
  49. //freopen("cheese.out","w",stdout);
  50. int t;
  51. scanf("%d",&t);
  52. while(t--)
  53. {
  54. cnt=;memset(head,,sizeof(head));
  55. scanf("%d%d%d",&n,&h,&r);
  56. for(int i=;i<=n;++i)
  57. {
  58. scanf("%lld%lld%lld",&p[i].x,&p[i].y,&p[i].z);
  59. }
  60. p[].x=p[].y=p[].z=;p[n+].x=p[n+].y=;p[n+].z=h;
  61. for(int i=;i<=n;++i)
  62. {
  63. for(int j=i+;j<=n;++j)
  64. {
  65. double dis=c(p[i],p[j]);
  66. if(dis>r+r)continue;add(i,j),add(j,i);
  67. }
  68. }
  69. for(int i=;i<=n;++i)
  70. {
  71. if(p[i].z<=r&&p[i].z>=-r)add(,i);
  72. if(p[i].z>=h-r&&p[i].z<=h+r)add(i,n+);
  73. }
  74. if(bfs())puts("Yes");
  75. else puts("No");
  76. }
  77. //fclose(stdin);
  78. //fclose(stdout);
  79. return ;
  80. }

NOIP2017 D2T1奶酪的更多相关文章

  1. [Luogu 3958] NOIP2017 D2T1 奶酪

    题目链接 人生第一篇题解,多多关照吧. 注意事项: 1.多组数据,每次要先初始化. 2.因为涉及到开根,所以记得开double. 整体思路: 建图,判断「起点」与「终点」是否连通. 方法可选择搜索(我 ...

  2. NOIP2017 D2T1 奶酪

    洛谷P3958 超级水的并没有用什么几何知识的几何题…… 直接爆搜一遍最后判断有没有与上/下表面相连的球之间连通即可……O(n2)不动脑子的复杂度 最多只是用一下并查集来判断两个点是否连通…… 具体细 ...

  3. NOIP 2017 D2T1 奶酪

    #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #i ...

  4. luogu 3958 奶酪

    noip2017 D2T1 奶酪 某zz选手没有想到可以用并查集来做,直接用了dijskstra,结果被ccf老爷机卡成了70分 题目大意: 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为 ...

  5. noip2017部分题目

    D1T3 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张NN个点MM条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,NN号点是公园的出口,每条边有一个非负权值, 代表策策经过 ...

  6. NOIP2017 题解

    QAQ--由于没报上名并没能亲自去,自己切一切题聊以慰藉吧-- 可能等到省选的时候我就没有能力再不看题解自己切省选题了--辣鸡HZ毁我青春 D1T1 小凯的疑惑 地球人都会做,懒得写题解了-- D1T ...

  7. [NOIP补坑计划]NOIP2017 题解&做题心得

    终于做完了…… 场上预计得分:?(省一分数线:295) 由于看过部分题解所以没有预计得分qwq 题解: D1T1 小凯的疑惑 题面 震惊!一道小学奥数题竟难倒无数高中考生! 欢迎大家以各种姿势*和谐* ...

  8. NOIP 考前研究

    NOIP 2017 试题研究 D1T1 小凯的疑惑 (45 min) 看到题面,大概是推数学公式. 先打暴力表,观察 \(a,b\) 与 \(n\) 的关系.猜想 \(a×b−a−b\). 引理:对于 ...

  9. NOIp2017TG解题报告

    NOIp2018RP++! 虽然没去但还得写写QAQ D1T1 : 小凯的疑惑 数学题 手推几组数据然后发现规律 \(Ans = (a-1)(b-1)+1\) AC in 1minite D1T2 : ...

随机推荐

  1. datagrid导出数据

    //导出excel public function touzi_doExport() { $search=$_POST['search']; //接受前端传过来的数据 $this->succes ...

  2. sql统计字符串出现次数技巧

    在牛客网上看到一道题,感觉挺有趣,是用sql统计字符串出现的次数. 这里提供一种思路,比如统计字符串A中子串B的出现次数: SELECT (LENGTH(A) - LENGTH(REPLACE(A, ...

  3. python3爬虫.1.简单的网页爬虫

    此为记录下我自己的爬虫学习过程. 利用url包抓取网页 import urllib.request #url包 def main(): url = "http://www.douban.co ...

  4. CentOS 6.5 安装 MongoDB

    1. 配置 yum 新建 /etc/yum.repos.d/mongodb-org-3.4.repo 文件,使用以下配置:(适用于 MongoDB 3.0 以后版本) [mongodb-org-3.4 ...

  5. BBScan — 一个信息泄漏批量扫描脚本

    github:https://github.com/lijiejie/BBScan 有些朋友手上有几十万甚至上百万个域名,比如,乌云所有厂商的子域名. 如果把这30万个域名全部扔给wvs,APPsca ...

  6. python基础之上下文管理器

    前言 关于计算器运行的上下文的概念,我的理解也不是很深:按我的理解就是程序在运行之前,其所需要的资源,运行环境等都会被序列化,然后加入到CPU的任务队列中,等待调度系统分配时间片执行.下面谈谈pyth ...

  7. iTextSharp之pdfRead(两个文件文本内容的比较,指定页数的pdf截取,水印的添加)

    using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.pdf.parser; using System; us ...

  8. React Native 快速入门之认识Props和State

    眼下React Native(以后简称RN)越来越火,我也要投入到学习当中.对于一个前端来说,还是有些难度.因为本人觉得这是一个App开发的领域,自然是不同.编写本文的时候,RN的版本为0.21.0. ...

  9. 85.Maximal Rectangle---dp

    题目链接:https://leetcode.com/problems/maximal-rectangle/description/ 题目大意:给出一个二维矩阵,计算最大的矩形面积(矩形由1组成).例子 ...

  10. UIScrollViewDelegate 方法调用

    UIScrollViewDelegate 方法调用 /** 设置缩放的View, 初始化完之后调用此方法告诉scrollView 谁可以缩放操作, 然后进行布局 */ func viewForZoom ...