dfs20求调
  • 板块P4995 跳跳!
  • 楼主cgxd
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/5 19:02
  • 上次更新2024/7/5 20:49:12
查看原帖
dfs20求调
1272259
cgxd楼主2024/7/5 19:02
#include<bits/stdc++.h>
using namespace std;
int n, ans;
vector<int> v(1);
bitset<305> vis;
void dfs(int x, int y, int sum){
	if(vis[y])
		return;
	vis.set(y);
	ans = max(ans, sum + (v[x] - v[y]) * (v[x] - v[y]));
	for(int i = 1; i <= n; ++i)
		dfs(y, i, sum + (v[x] - v[y]) * (v[x] - v[y]));
	vis.reset(y);
}signed main(){
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i){
		int k;
		scanf("%d", &k);
		v.push_back(k);
	}sort(v.begin() + 1, v.end(), greater<int>());
	dfs(0, 1, 0);
	printf("%d", ans);
	return 0;
}
2024/7/5 19:02
加载中...