栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【数据结构】小Y过生日之奇特蛋糕(DFS)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据结构】小Y过生日之奇特蛋糕(DFS)

题面

样例数据

AC_Code
#include 
#include 
#include 
#define ll long long 
#define db double 
const int N=1010;
const int M=10100;
using namespace std;
unsigned long long t,n,r,h;
bool vis[N], jude;
int f[N];

struct node{
    double x,y,z;
}hole[M];

bool got(node a, node b) {
    ll depth;
    depth = pow((a.x-b.x),2) + pow((a.y-b.y),2) + pow((a.z-b.z),2);
    if(depth<=4*r*r) return true;
    else return false;
}

void dfs(int i)
{
    if(jude)  return ;
    if(hole[i].z+r>=h) {
        jude=1;  return ;
    }
    for(int j=1; j<=n; j++) {
        if(got(hole[i], hole[j]) && !vis[j]) {
            vis[j]=1;  dfs(j);
        }
    }
}

int main()
{
    scanf("%d",&t);
    for(int i=1; i<=t; i++)
    {
        scanf("%d %d %d",&n,&h,&r); 
        memset(vis, 0, sizeof(vis));
		jude=0;
        for(int j=1; j<=n; j++)
        	scanf("%lf %lf %lf",&hole[j].x,&hole[j].y,&hole[j].z);
        for(int k=1;k<=n;k++)
        	if(hole[k].z<=r)  {
            	vis[k]=1;  dfs(k);
        	}
        if(jude) 
        	cout<<"Yes"<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号