[JSOI2004]平衡点

2020-12-29 05:27

阅读:470

标签:print   模拟退火   double   随机   pac   lan   eal   ret   分析   

题目

请前往 [JSOI2004]平衡点

分析

随机算法
为何不模拟退火呢?
于是(其实目前我不懂怎么判断平不平衡)
能量越小系统越平衡

\(Code\)

#include
#include
#include
using namespace std;

const int N = 1005;
const double delta = 0.996;
int n;
struct node{int x , y , w;}p[N];
double ans_x , ans_y , ans_w;

double energy(double x , double y)
{
	double res = 0;
	for(register int i = 1; i  1e-14)
	{
		double xx = ans_x + (rand() * 2 - RAND_MAX) * t;
		double yy = ans_y + (rand() * 2 - RAND_MAX) * t;
		double ww = energy(xx , yy) , del = ww - ans_w;
		if (del  rand()) {ans_x = xx , ans_y = yy;}
		t *= delta;
	}
}

void solve()
{
	for(register int i = 1; i 

[JSOI2004]平衡点

标签:print   模拟退火   double   随机   pac   lan   eal   ret   分析   

原文地址:https://www.cnblogs.com/leiyuanze/p/13814108.html


评论


亲,登录后才可以留言!