首页 > 其他 > 详细

多校连萌15-8-12#A

时间:2017-06-21 13:34:11      阅读:311      评论:0      收藏:0      [点我收藏+]
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstring>
#include <stack>
#include <set>
#include <map>
#include <vector>

using namespace std;
#define INF 0x2fffffff
#define LL long long
#define MAX(a,b) ((a)>(b))?

(a):(b) #define MIN(a,b) ((a)<(b))?(a):(b) double a[30]; double b[30]; double c[30]; double dp[1 << 21]; double d[30][30]; int n,m; double ans; void fun(int status,int cur,int qu){ if(qu == m){ ans = max(ans,dp[status]); return; } if(cur > n){ return ; } double c = 0; for(int i = 0;i < cur;i++){ if(status&(1<<i)){ c += d[cur][i]; } } dp[status|(1<<cur)] = dp[status] + c; fun(status|(1<<cur),cur+1,qu+1); fun(status,cur+1,qu); } int main(){ while(cin >> n >> m){ for(int i = 0;i < n;i++){ cin >> a[i] >> b[i] >> c[i]; } memset(d,0,sizeof(d)); for(int i = 0;i < n;i++){ for(int j = 0;j < n;j++){ d[i][j] = (a[i]-a[j])*(a[i]-a[j]) + (b[i]-b[j])*(b[i]-b[j]) + (c[i]-c[j])*(c[i]-c[j]); } } memset(dp,0,sizeof(dp)); ans = 0; fun(0,0,0); printf("%.6f\n",ans); } return 0; }

状压搜索
点击看题

多校连萌15-8-12#A

原文:http://www.cnblogs.com/liguangsunls/p/7058899.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!