【集训】ZR集训——非传统题
8.8
交互
1.IO交互
2.函数交互
增量构造法CF1762D
通信
qoj——Communication
1.压缩传递信息
2.交互式通信
提答
模拟退火
T越大,可变化幅度越大;
若答案更优,直接取
若答案更劣,t越小,答案越劣,接受度越小,反之亦然
T逐渐冷却,此时不再变化
P1337
double energy(double x,double y)//根据物理学知识,能量总和越小越稳定
{
double r=0,dx,dy;
for (int a=1;a<=n;a++)
{
dx=x-q[a].x;
dy=y-q[a].y;
r+=sqrt(dx*dx+dy*dy)*q[a].w;
}
return r;
}
void SA(){
double t=3000;//初始温度
double down=0.98;//降温
while(t>=eps){
double dx=ansx+(rand()*2-RAND_MAX)*t;
double dy=ansy+(rand()*2-RAND_MAX)*t;
//cout<<dx<<" "<<dy<<"\n";
double dw=energy(dx,dy);//随机解
double d=dw-answ;
//cout<<d<<"\n";
if(d<=0){
answ=dw;
ansx=dx;
ansy=dy;
}
else if(exp(-d/t)*RAND_MAX>rand()){
ansx=dx;
ansy=dy;
}
t*=down;
}
}
void solve(){
int ttt=30;
while(ttt--) SA();//模拟退火
}

浙公网安备 33010602011771号