[JSOI2004]平衡点
标签: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
评论