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

    题目链接:https://www.luogu.org/problem/P1433

    参考代码:

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    double dis[16][16],ans=100000,now,x[16],y[16];//两点距离(预处理),最后的结果,现在的距离,每个点的坐标
    bool vis[16];//奶酪是否被吃
    void dfs(int pos,int num)//pos第几块奶酪 num吃的第几块 
    {
    	if(now>ans)//如果现在的距离比原来的结果大就返回
    		return;
    	if(num==n)//吃完了
    	{
    		if(ans>now)//更新答案,将小的答案保存
    			ans=now;
    		return;
    	}
    	vis[pos]=true;//标记
    	for(int i=1;i<=n;i++)
    	{
    		if(vis[i]==false)//没被吃
    		{
    			now+=dis[pos][i];//现在的距离 
    			dfs(i,num+1);
    			now-=dis[pos][i];//回溯
    		}
    	}
    	vis[pos]=false;//回溯
    }
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)
    		cin>>x[i]>>y[i];
    	x[0]=0;y[0]=0; 
    	for(int i=0;i<=n;i++)//预处理两点距离
    		for(int j=0;j<=n;j++)
    			dis[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
    	dfs(0,0);
    	cout<<setiosflags(ios::fixed)<<setprecision(2)<<ans<<endl;
    }
    
  • 相关阅读:
    PyQt5库结构
    PyQt5
    QObject
    os.listdir()
    os.getcwd()
    os.chdir()
    os.access()
    __name__
    php 学习笔记之关于时区的那点事
    php 学习笔记之搭建开发环境(mac版)
  • 原文地址:https://www.cnblogs.com/yonglin1998/p/11780818.html
Copyright © 2011-2022 走看看