zoukankan      html  css  js  c++  java
  • 「洛谷P1433」吃奶酪

    链接:洛谷P1433

    题目描述

    房间里放着n块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处。

    输入格式:

    第一行一个数n (n<=15)

    接下来每行2个实数,表示第i块奶酪的坐标。

    两点之间的距离公式=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))

    输出格式:

    一个数,表示要跑的最少距离,保留2位小数。

    这是一道搜索难题

    直接搜索即可

    就不多说了(因为我太弱了)

    #include<bits/stdc++.h>
    #define prf printf
    #define scf scanf
    using namespace std;
    int n;
    double b[20],a[20],vis[20],ans=999999.9;
    void Dfs(int k,double p,double x,double y)
    {
        if(k==n)//走完所有店 
        {
            ans=min(ans,p);//更新答案 
            return;//返回 
        }
        for(int i=1;i<=n;i++)
        {
            if(!vis[i]&&ans>p)//如果未被用过且当前路径小于最小路径(剪枝) 
            {
                vis[i]=1;//记录被用过 
                Dfs(k+1,p+sqrt((a[i]-x)*(a[i]-x)+(b[i]-y)*(b[i]-y)),a[i],b[i]);//搜索下一层 
                vis[i]=0;//回溯 ,将标记的点取消标记 
            }
        }
    }
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lf%lf",&a[i],&b[i]);//输入 
        Dfs(0,0.0,0,0);//搜索 
        printf("%.2lf
    ",ans);//输出,保留两位 
        return 0;   
    }
  • 相关阅读:
    php intval()函数
    MVC开发模式
    Session详解
    JSP入门
    Response中文乱码问题
    cookie入门
    idea实现更改servlet模板
    使用new和newInstance()创建类的区别
    Servlet 3.0 新特性详解
    web Servlet 3.0 新特性之web模块化编程,web-fragment.xml编写及打jar包
  • 原文地址:https://www.cnblogs.com/yueyuweihu/p/11493832.html
Copyright © 2011-2022 走看看