10pts
  • 板块P1433 吃奶酪
  • 楼主r1sing
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/2 19:36
  • 上次更新2024/4/2 21:18:38
查看原帖
10pts
767297
r1sing楼主2024/4/2 19:36

搜索:

#include <bits/stdc++.h>
using namespace std;
struct point
{
	double x, y;
}a[20];
int n, k;
double ans = 2e9;
bool vis[114];
void dfs(int cur, double all, double x, double y)
{
	if(all > ans)
		return ; 
	if(cur == k + 1)
	{
		ans = min(ans, all);
		return ;
	}
	for(int i = 1; i <= n; i++)
	{
		if(vis[i] == 0)
		{
			vis[i] = 1;
			dfs(cur + 1, all + sqrt((abs(x - a[i].x) * abs(x - a[i].x)) + (abs(y - a[i].y) * abs(y - a[i].y))), a[i].x, a[i].y);
			vis[i] = 0;
		}
	}
}
int main()
{
	cin >> n >> k;
	for(int i = 1; i <= n; i++)
		cin >> a[i].x >> a[i].y;
	dfs(1, 0.00, 0.00, 0.00);
	printf("%.2lf", ans);
	return 0;
}
2024/4/2 19:36
加载中...