记录编号 475897 评测结果 WWWWWWWWTT
题目名称 [NOIP 2017]奶酪 最终得分 0
用户昵称 Gravatar+1s 是否通过 未通过
代码语言 C++ 运行时间 2.685 s
提交时间 2017-11-19 15:35:09 内存使用 4.93 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cmath>
  4. int T,n,h,r,arc[1100][1100],vsd[1100],end[1100],can=0;
  5. struct
  6. {
  7. int x,y,z;
  8. }pnt[1100];
  9. int xiangjiao(int i,int j)
  10. {
  11. double g=r*2;
  12. double dis=sqrt((pnt[i].x-pnt[j].x)*(pnt[i].x-pnt[j].x)+(pnt[i].y-pnt[j].y)*(pnt[i].y-pnt[j].y)+(pnt[i].z-pnt[j].z)*(pnt[i].z-pnt[j].z));
  13. return dis<=g;
  14. }
  15. void dfs(int nod)
  16. {
  17. if(can==1)return;
  18. if(end[nod]==1)
  19. {
  20. can=1;
  21. return;
  22. }
  23. vsd[nod]=1;
  24. for(int i=1;i<=n;i++)
  25. {
  26. if(vsd[i]==0&&arc[nod][i])
  27. {
  28. vsd[i]=1;
  29. dfs(i);
  30. }
  31. }
  32. }
  33. int main()
  34. {
  35. freopen("2017cheese.in","r",stdin);
  36. freopen("2017cheese.out","w",stdout);
  37. scanf("%d",&T);
  38. for(int i=1;i<=T;i++)
  39. {
  40. can=0;
  41. scanf("%d %d %d",&n,&h,&r);
  42. memset(pnt,0,sizeof(pnt));
  43. memset(arc,0,sizeof(arc));
  44. memset(vsd,0,sizeof(vsd));
  45. for(int i=1;i<=n;i++)
  46. {
  47. scanf("%d %d %d",&pnt[i].x,&pnt[i].y,&pnt[i].z);
  48. }
  49. for(int i=1;i<=n;i++)
  50. for(int j=i+1;j<=n;j++)
  51. if(xiangjiao(i,j))
  52. {
  53. arc[i][j]=1;
  54. arc[j][i]=1;
  55. }
  56. for(int i=1;i<=n;i++)
  57. {
  58. if(pnt[i].z+r>=h)
  59. {
  60. end[i]=1;
  61. }
  62. }
  63. for(int i=1;i<=n;i++)
  64. {
  65. if(can==1)
  66. break;
  67. if(pnt[i].z-r<=0)
  68. {
  69. dfs(i);
  70. }
  71. }
  72. if(can==1)printf("Yes\n");
  73. else printf("No\n");
  74. }
  75. return 0;
  76. }