hdu 4617 Weapon

计算几何,不过题意有点模糊,因此貌似数据也比较水

#include <stdio.h>
#include <vector>
#include <string.h>
#include <math.h>
using namespace std;
#define MAXN 35
const double eps = 1e-6;
int cmpZero ( double a )
{
    return ( a > eps ) - ( a < -eps );
}

struct mPt
{
    double x, y, z;
    mPt ( double a = 0.0, double b = 0.0, double c = 0.0 ) : x ( a ), y ( b ), z ( c ) {}
    mPt operator - ( const mPt & a ) const
    {
        return mPt ( x - a.x, y - a.y, z - a.z );
    }
    mPt operator ^ ( const mPt & b ) const /// 叉乘
    {
        return mPt ( y * b.z - z * b.y, z * b.x - x * b.z, x * b.y - y * b.x );
    }
    double operator * ( const mPt & a ) const /// 点乘
    {
        return x * a.x + y * a.y + z * a.z;
    }
    double getVal()
    {
        return sqrt ( x * x + y * y + z * z );
    }
    void input()
    {
        scanf ( "%lf%lf%lf", &x, &y, &z );
    }
};

/// 计算两个异面直线间距离
double getDis_LL ( mPt a, mPt va, mPt b, mPt vb )
{
    mPt c = va ^ vb;
    return fabs ( c * ( a - b ) ) / c.getVal();
}

double getDis_ULL ( mPt a, mPt b, mPt v )
{
    mPt c = ( b - a ) ^ v;
    return fabs ( c.getVal() / v.getVal() );
}

struct _node
{
    mPt ct, p1, p2;
    double r;
    void input()
    {
        ct.input();
        p1.input();
        p2.input();
        r = ( p1 - ct ).getVal();
    }
    mPt getV()
    {
        return ( p1 - ct ) ^ ( p2 - ct );
    }
} node[MAXN];
int isEqual ( mPt v1, mPt v2 )
{
    mPt a = v1 ^ v2;
    double b = a.getVal();
    return cmpZero ( b ) == 0;
}
int main()
{
#ifdef  __GNUC__
    freopen ( "in.txt", "r", stdin );
    //freopen ( "out.txt", "w", stdout );
#endif // __GNUC__
    int t, n;
    scanf ( "%d", &t );
    while ( t-- )
    {
        scanf ( "%d", &n );
        for ( int i = 0; i < n; ++i )
        {
            node[i].input();
        }
        double mn = 1e20;
        for ( int i = 0; i < n; ++i )
        {
            for ( int j = i + 1; j < n; ++j )
            {
                mPt v1 = node[i].getV();
                mPt v2 = node[j].getV();
                if ( isEqual ( v1, v2 ) )
                {
                    double p = getDis_ULL ( node[i].ct, node[j].ct, v1 );
                    if ( cmpZero ( p ) == 0 )
                    {
                        if ( cmpZero ( node[i].r - node[j].r ) == 0 )
                        {
                            printf ( "Lucky\n" );
                            goto cao;
                        }
                        else
                        {
                            mn = min ( mn, fabs ( node[i].r - node[j].r ) );
                        }
                    }
                    else
                    {
                        if ( p > fabs ( node[i].r - node[j].r ) && p < fabs ( node[i].r + node[j].r ) )
                        {
                            printf ( "Lucky\n" );
                            goto cao;
                        }
                        else if ( p > fabs ( node[i].r + node[j].r ) )
                        {
                            mn = min ( mn, p - node[i].r - node[j].r );
                        }
                        else
                        {
                            mn = min ( mn, fabs ( node[i].r - node[j].r ) - p );
                        }
                    }
                }
                else
                {
                    double p = getDis_LL ( node[i].ct, v1, node[j].ct, v2 );
                    p -= ( node[i].r + node[j].r );
                    if ( cmpZero ( p ) <= 0 )
                    {
                        printf ( "Lucky\n" );
                        goto cao;
                    }
                    else
                    {
                        mn = min ( mn, p );
                    }
                }
            }
        }
        printf ( "%.2lf\n", mn );
cao:
        ;
    }
    return 0;
}


数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值