HDU 1162 Eddy's picture MST(基础)

本文详细介绍了最小生成树的概念、算法原理及其在实际问题中的应用案例,通过实例演示了如何利用最小生成树解决连接所有点的最短路径问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击打开链接

 

Eddy's picture

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5539    Accepted Submission(s): 2776


Problem Description
Eddy begins to like  painting pictures recently ,he is sure of himself to become a painter.Every day Eddy draws pictures in his small room,  and he usually  puts out his newest pictures to let his friends appreciate. but the result it can be imagined, the friends are not interested in his picture.Eddy feels very puzzled,in order to change all friends 's view to his technical of painting  pictures ,so Eddy creates a problem for the his friends of you.
Problem descriptions as follows: Given you some coordinates pionts on a drawing paper, every point links with the ink with the straight line, causes all points finally  to link in the same place. How many distants does your duty discover the shortest length which the ink draws?
 


 

Input
The first line contains 0 < n <= 100, the number of point. For each point, a line follows; each following line contains two real numbers indicating the (x,y) coordinates of the point.

Input contains multiple test cases. Process to the end of file.
 


 

Output
Your program prints a single real number to two decimal places: the minimum total length of ink lines that can connect all the points.
 


 

Sample Input
  
3 1.0 1.0 2.0 2.0 2.0 4.0
 


 

Sample Output
  
3.41
 


 

Author
eddy
 


 

Recommend
JGShining

 

 

最小生成树简单题。

 

#include<stdio.h>
#include<string.h>
#include<math.h>
#define inf 0x3f3f3f
double g[107][107];
double x[107],y[107],pri[107];
bool vis[107];
int n;

void prime()
{
    int id;
    double minn,count=0;
    memset(vis,false,sizeof(vis));
    for(int i=1; i<=n; i++)
        pri[i]=g[1][i];
    vis[1]=true;
    for(int i=2; i<=n; i++)
    {
        minn=inf;
        for(int j=2; j<=n; j++)
            if(minn>pri[j]&&!vis[j])
            {
                minn=pri[j];
                id=j;
            }
        vis[id]=true;
        count+=minn;
        for(int j=2; j<=n; j++)
            if(!vis[j]&&pri[j]>g[j][id])
                pri[j]=g[j][id];
    }
    printf("%.2f\n",count);
}

int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=1; i<=n; i++)
            scanf("%lf%lf",&x[i],&y[i]);
        for(int i=1; i<=n; i++)
            for(int j=1; j<=n; j++)
            {
                double tmp_x,tmp_y,tmp;
                tmp_x=(x[j]-x[i])*(x[j]-x[i]);
                tmp_y=(y[j]-y[i])*(y[j]-y[i]);
                tmp=sqrt(tmp_x+tmp_y);
                g[i][j]=g[j][i]=tmp;
                //printf("aaaffh%lf\n",tmp);
            }
        prime();
    }

    return 0;
}


 

内容概要:本文深入探讨了金属氢化物(MH)储氢系统在燃料电池汽车中的应用,通过建立吸收/释放氢气的动态模型和热交换模型,结合实验测试分析了不同反应条件下的性能表现。研究表明,低温环境有利于氢气吸收,高温则促进氢气释放;提高氢气流速和降低储氢材料体积分数能提升系统效率。论文还详细介绍了换热系统结构、动态性能数学模型、吸放氢特性仿真分析、热交换系统优化设计、系统控制策略优化以及工程验证与误差分析。此外,通过三维动态建模、换热结构对比分析、系统级性能优化等手段,进一步验证了金属氢化物储氢系统的关键性能特征,并提出了具体的优化设计方案。 适用人群:从事氢能技术研发的科研人员、工程师及相关领域的研究生。 使用场景及目标:①为储氢罐热管理设计提供理论依据;②推动车载储氢技术的发展;③为金属氢化物储氢系统的工程应用提供量化依据;④优化储氢系统的操作参数和结构设计。 其他说明:该研究不仅通过建模仿真全面验证了论文实验结论,还提出了具体的操作参数优化建议,如吸氢阶段维持25-30°C,氢气流速0.012g/s;放氢阶段快速升温至70-75°C,水速18-20g/min。同时,文章还强调了安全考虑,如最高工作压力限制在5bar以下,温度传感器冗余设计等。未来的研究方向包括多尺度建模、新型换热结构和智能控制等方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值