首页 > 其他分享 >吊打XXX SA

吊打XXX SA

时间:2024-09-05 16:18:09浏览次数:3  
标签:ansx ansy point int double XXX 吊打 SA 温度

P1337 吊打XXX

SA 无疑就这几个步骤。

  1. 设初温 t;

  2. 降低系数 down<1

  3. 设定阈值

  4. 更劣随机概率选择(温度越低,概率越低)

AI 评价:

image

#include<bits/stdc++.h>
using namespace std;
#define down 0.996 //降低系数 
int n;
struct node{
	int x,y,w;
}point[10006];

double ansx,ansy,answ;

double energy(double x,double y){
	double r=0,dx,dy;
	
	for(int i=1;i<=n;i++){//计算能量总和,总和越小越稳定 
		dx=x-point[i].x;
		dy=y-point[i].y;
		r+=sqrt(dx*dx+dy*dy)*point[i].w;
	}
	return r;
}

void sa(){
	double t=3000;//设置初温,是控制接受较差解的概率 
	while(t>1e-15){//设置温度阈值,当温度低于阈值时,停止降温过程
		double ex=ansx+(rand()*2-RAND_MAX)*t;//根据当前温度随机生成新的解 
		double ey=ansy+(rand()*2-RAND_MAX)*t; 
		double ew=energy(ex,ey);//计算新值 
		double de=ew-answ;//计算新值和旧值的差 
		if(de<0){//越小越稳定,更优 
			ansx=ex;
			ansy=ey;
			answ=ew;
		}
		else if(exp(-de/t)*RAND_MAX>rand()){//概率选择更劣的值,温度越小概率越小 
			ansx=ex;
			ansy=ey;
		}
		t*=down;//降低温度 
	}
}

int main(){
	ios::sync_with_stdio(false);
	cin>>n;
	
	for(int i=1;i<=n;i++){
		cin>>point[i].x>>point[i].y>>point[i].w;
		ansx+=point[i].x;//初始化 
		ansy+=point[i].y;
	}
	
	ansx/=n;//取平均值更合理 
	ansy/=n;
	answ=energy(ansx,ansy);//初始值 
	
	while ((double)clock()/CLOCKS_PER_SEC<0.975) sa();//卡时 
	
	printf("%.3lf %.3lf",ansx,ansy);
	
    return 0;
}

标签:ansx,ansy,point,int,double,XXX,吊打,SA,温度
From: https://www.cnblogs.com/sadlin/p/18398698

相关文章

  • BUSA8030 (BUSA7030) Mgt of Data, Analytics and Change
    BUSA8030(BUSA7030)MgtofData,AnalyticsandChangeSession2,2024AssessmentTask   CaseStudy–IndividualAssignmentDuedate      6thofSeptember2024,23:55Weight(%)       30%Taskdescription       Individ......
  • drop tablespace xxx including contents恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:droptablespacexxxincludingcontents恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]最近接到一个客户恢复请求,对系统的核心业务表空间发起了droptablespacexxxincludin......
  • xtensa架构--指令汇总(加载指令/存储指令/跳转和调用指令/条件分支指/移动指令令/算术
    目录一xtensa架构指令汇总二  加载指令1. l32i 指令示例2. l8i 指令示例3. l16i 指令示例4. ld 指令示例5总结三存储指令3.1 存储指令概述3.2存储指令详述S8I(RR8):8位存储(8位偏移)S16I(RR8):16位存储(8位移位偏移)S32I(RR8):32位存储(8位......
  • SAP B1 三大基本表单标准功能介绍-物料主数据(下)
    背景在SAPB1中,科目表、业务伙伴主数据、物料主数据被称为三大基本表单,其中的标准功能是实施项目的基础。本系列文章将逐一介绍三大基本表单各个字段的含义、须填内容、功能等内容。附上SAPB110.0的帮助文档:SAPBusinessOne10.0|SAPHelpPortal本文介绍的是:库存......
  • [1058] Integrate points within the same polygons as the centroid
    Tointegratepointswithinaspecificpolygonandsetthecentroidofthepolygonasthenewlocationforthosepoints,youcanusethegeopandaslibraryinPython.Here’sastep-by-stepguide:Importnecessarylibraries:importgeopandasasgpdfromsh......
  • [USACO13OPEN] Photo G 题解
    前言题目链接:洛谷。题意简述一个长度为\(n\)的序列,有一些位置染了色。现给出\(m\)条限制,第\(i\)条限制为\(l_i\simr_i\)中有且仅有一个位置染色。求出满足这\(m\)中条件,染色位置个数最多为多少。\(n\leq2\times10^5\),\(m\leq10^5\)。题目分析方法\(1\):差......
  • IDA 出现 Decompilation failure: xxx: call analysis failed Please refer to the ma
    题目https://files.buuoj.cn/files/3519510dd82111302327c73a17602a65/attachment.zipF5反汇编发现弹出这个窗口Decompilationfailure:401095:callanalysisfailedPleaserefertothemanualtofindappropriateactions右键查看TextView来到这个地址进入这个函......
  • 【Qt】消息对话框 QMessageBox
    消息对话框QMessageBoxQMessageBox用于显示一个消息给用户,,并且让用户进行一个简单的选择。消息对话框是应⽤程序中最常⽤的界⾯元素。消息对话框主要⽤于为⽤⼾提⽰重要信息,强制⽤⼾进⾏选择操作。例子:创建一个消息对话框(1)在QtDesigner中设置一个按钮(2)右键点击......
  • SAP HCM 如何追踪Z表的日志修改记录
    导读INTRODUCTION日志记录:这几天遇到一个问题,就是查谁修改Z表的数据,因为HCM系统大部分都是信息类型,信息类型修改是有专门一套的处理机制,那么Z开头的表是不是也有追踪的一套机制。今天我们分析下如何开启Z表追踪修改记录。作者:vivi,来源:osinnovation。一、系统是否有追踪日志......
  • 深入浅出视觉分割大模型SAM(原理解析+代码实践)
    深入浅出视觉分割大模型SAM(原理解析+代码实践)视频地址:视觉分割大模型SAM(原理解析+代码实践)_哔哩哔哩_bilibili大家好,这里是肆十二,近两年来大模型的成果在一些领域的应用已经深入人心,由于我本人主要感兴趣的方向为计算机视觉,所以今天我们来一起看下计算机视觉领域中这个......