模拟退火小结(Bzoj3680:吊打xxx)】的更多相关文章

[JSOI2004]平衡点/[BZOJ3680]吊打XXX 题目大意: 有\(n(n\le10000)\)个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.假设绳子是完全弹性的,桌子足够高,且忽略所有的摩擦.问绳结最终平衡于何处. 思路: 模拟退火. 源代码: #include<cmath> #include<cstdio> #include<cctype> #include<cstdlib> inline int get…
简介 就是模拟退火的物理过程,每次随机逼近乘上温度,以\(e^{\Delta/T}\)的概率接受答案,随机一个概率比较 然后就是调参+乱搞 题目 Bzoj3680:吊打xxx 代码 # include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long ll; const…
3680: 吊打XXX Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 308  Solved: 94 [Submit][Status] Description gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将 n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有一个公共的绳结x.吊好gty后蒟蒻们发现由于每个gty重力不…
Description gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有一个公共的绳结x.吊好gty后蒟蒻们发现由于每个gty重力不同,绳结x在移动.蒟蒻wangxz脑洞大开的决定计算出x最后停留处的坐标,由于他太弱了决定向你求助.不计摩擦,不计能量损失,由于gty足够矮所以不会掉到地上. Input 输入第一行为一个正整数n(1<=n<=10000),…
Description gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将 n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有一个公共的绳结x.吊好gty后蒟蒻们发现由于每个gty重力不同,绳 结x在移动.蒟蒻wangxz脑洞大开的决定计算出x最后停留处的坐标,由于他太弱了决定向你求助. 不计摩擦,不计能量损失,由于gty足够矮所以不会掉到地上. Input 输入第一行为一个正整数n(1<=n<=1000…
题目要求 最小(dis表示绳结到点i的距离),就是个广义费马点的题,模拟退火裸题QAQ 模拟退火就是优化后的爬山算法,一开始先随机一个平均点,接下来如果随机到的点比当前点劣,温度比较高的话也有几率跳过去,这样就能跳出一个局部最优解,随着温度降低,跳到劣点的概率越来越小 好喵喵的算法! (这题好像黄学长直接爬山算法也过了,模拟退火贼慢T^T #include<iostream> #include<cstring> #include<cstdlib> #include<…
本题就是找一个受力平衡的点 我们一开始假设这个点是(0,0) 然后求出它受到的力,将合力正交分解后朝着合力的方向走若干步,并不断缩小步长,一步步逼近答案 #include<cstdio> #include<cmath> #define N 10000 int n,i;double x[N],y[N],w[N],a,b,sumx,sumy,dx,dy,dis,step=1; double sqr(double x){return x*x;} int main(){ for(scanf…
[BZOJ3680]吊打XXX(模拟退火) 题面 BZOJ 题解 模拟退火... 就是模拟退火 然后这题有毒 各种调参数之后终于\(AC\)了.. 这种题就是玄学呀... 温度要调大 最后跑完还要向四周多\(rand\)几次 保证能够找到最优解... #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<…
吊打XXX Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty. gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了. 蒟蒻们将n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有一个公共的绳结x. 吊好gty后蒟蒻们发现由于每个gty重力不同,绳结x在移动. 蒟蒻wangxz脑洞大开的决定计算出x最后停留处的坐标,…
吊打XXX bzoj-3680 题目大意:在平面上给定n个点,每个点有一个权值.请在平面上找出一个点(不一定在这n个点内找)使得这个点到n个点的距离*权值最小,即求这n个点的重心. 注释:$1\le n\le 10^4$,$-10^5\le x_i,y_i\le 10^5$. 想法: 模拟退火裸题. 身为一个随机化算法,模拟退火在时间允许的情况下是完全由于爬山的.模拟退火,说白了就是有一定的接受差解的概率,而爬山算法不会接受错解.换言之,爬山是模拟退火的一种极端情况. 模拟物理的降温,就是模拟退…
3680: 吊打XXX Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 3192  Solved: 1198[Submit][Status][Discuss] Description gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将 n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有一个公共的绳结x.吊好gty后蒟蒻们发现…
//yy:今天简单入门学了下ORZ 爬山算法:兔子朝着比现在高的地方跳去.它找到了不远处的最高山峰.但是这座山不一定是珠穆朗玛峰.这就是爬山算法,它不能保证局部最优值就是全局最优值. 模拟退火:兔子喝醉了.它随机地跳了很长时间.这期间,它可能走向高处,也可能踏入平地.但是,它渐渐清醒了并朝最高方向跳去.这就是模拟退火. 题目链接:BZOJ 3680: 吊打XXX 1<=n<=10000,-100000<=xi,yi<=100000 题意:找一个点,使得最小 #include <…
题目描述 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到地上),且忽略所有的摩擦. 问绳结X最终平衡于何处. 注意:桌面上的洞都比绳结X小得多,所以即使某个重物特别重,绳结X也不可能穿过桌面上的洞掉下来,最多是卡在某个洞口处. 输入输出格式 输入格式: 文件的第一行为一个正整数n(1≤n≤1000),表示重物和洞的数目.接下来的n行,每行是3个整数:Xi…
推荐博客:模拟退火总结(模拟退火)by FlashHu.模拟退火的原理,差不多就是不断地由现有的值不断地试探,不断地转到更优的值,并在一定概率下转到较差的值. 题目传送门:luogu1337 [JSOI2004]平衡点 / 吊打XXX 题目转述:平面上有n个点,每个点有自己的位置\(xi\),\(yi\)和权值\(wi\).求一个新点的位置\(x\),\(y\),使得该点到其余所有点距离与权值之积的和最小.也即\(\sum\limits_{i=1}^n sqrt((x-x[i])^2+(y-y[…
[洛谷1337] 吊打XXX/平衡点 (模拟退火) 题意 n个重物(x,y,w),求平衡时x的位置(x,y) 分析 模拟退火基础题,基于随机数的优化算法,时间复杂度玄学,参数玄学,能不能AC看脸,当然如果参数设定的好,并且在规定时间内多跑几次退火算法,并且每次退火时以上一次退火得到的最优解作为新一次退火的起点,AC的概率还是很大的. ACcode #include <bits/stdc++.h> #define fre freopen("data.in","r&q…
P1337 [JSOI2004]平衡点 / 吊打XXX 题目描述 有 \(n\) 个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.\(X\)处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到地上),且忽略所有的摩擦. 问绳结 \(X\) 最终平衡于何处. 注意:桌面上的洞都比绳结 \(X\) 小得多,所以即使某个重物特别重,绳结 \(X\) 也不可能穿过桌面上的洞掉下来,最多是卡在某个洞口处. 输入输出格式 输入格式:…
洛谷 P1337 [JSOI2004]平衡点 / 吊打XXX 点击进入FakeHu的模拟退火博客 神仙模拟退火...去看fakehu的博客吧...懒得写了... 因为精度问题要在求得的最优解附近(大约0.01以内随机找解更新 成功创造此题唯一一个9000ms....链接(反正你也点不进去=.= #include<bits/stdc++.h> #define il inline #define vd void typedef long long ll; il int gi(){ int x=0,…
3680: 吊打XXX 链接 思路: 模拟退火. 代码: 跑的特别慢... #include<cstdio> #include<algorithm> #include<cstring> #include<cctype> #include<cmath> using namespace std; ; struct Node{ double x,y,w; }d[N],ans; int n; double minans = 1e18; double di…
题目描述 gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有一个公共的绳结x.吊好gty后蒟蒻们发现由于每个gty重力不同,绳结x在移动.蒟蒻wangxz脑洞大开的决定计算出x最后停留处的坐标,由于他太弱了决定向你求助. 不计摩擦,不计能量损失,由于gty足够矮所以不会掉到地上. 分析 模拟退火的链接:https://www.cnblogs.com/chho…
题目链接:BZOJ - 3680 题目分析 这道题是SLYZ的神犇把JSOI的平衡点那道题改了一下题面变成了吊打GTY神犇..Orz 第一次写模拟退火,只能照着别人的代码写,我看的是PoPoQQQ神犇的代码,于是我基本上完全照着写的,代码没什么区别= = 首先是模型的转化,一看这道题目是神奇的物理题,我完全就不会啊. 搜题解,题解是这样的:根据“一切自然变化进行的方向都是使能量降低,因为能量较低的状态比较稳定”的基本物理原理,这个绳结的移动趋势是使整个系统的总能量降低. 这个系统是一个机械系统,…
问题描述 LG1337 题解 模拟退火模板 记住概率公式: \(exp(\frac{dealt}{T}) \times rand \ge R_A^ND^M_AX\) zzk太欧了,我交了一版没过他来了一下就A了. \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; template <typename Tp> void read(Tp &x){ x=0;char ch=1;int fh; while(…
BZOJ Luogu (洛谷和BZOJ上的数据范围不同,可能需要稍微调一调参数) sol 这题的参数调得我心累 模拟退火的模型可以形象地理解为:不断降温的小球在一个凹凸不平的平面上反复横跳,根据万有引力定理小球一定会停留在一个低洼的位置.在温度高的时候小球的运动幅度剧烈,同时也较容易地会接受更劣的解(也就是一个更高的位置).随着温度降低小球的运动幅度减小,变得较难以接受一个更劣的解. 因为这题的背景下较优解会比较集中,所以在降温达到指定温度后要向四周多rand几次. code #include<…
第一道模拟退火 重心嘛,就是要找到一个点,使其到所有点距离*该点权值和最小 思路:初始化一个T,mint,当T大于mint时,每次随机一个解,如果解比当前解优,直接转移,否则,以某概率(与T正相关)转移,并不断降温,最后向四周爬山 感觉思路比较清晰,但好多细节不太明白,比如初始化的T,mint,以及退火的速度,前后改了几十遍吧.还是要多做题,找感觉...... #include<cstdio> #include<cstring> #include<iostream> #…
题目描述 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到地上),且忽略所有的摩擦. 问绳结X最终平衡于何处. 注意:桌面上的洞都比绳结X小得多,所以即使某个重物特别重,绳结X也不可能穿过桌面上的洞掉下来,最多是卡在某个洞口处. 输入输出格式 输入格式: 文件的第一行为一个正整数n(1≤n≤1000),表示重物和洞的数目.接下来的n行,每行是3个整数:Xi…
洛谷题目传送门 很可惜,充满Mo力的Mo拟退火并不是正解.不过这是一道最适合开始入手Mo拟退火的好题. 对模拟退火还不是很清楚的可以看一下 这道题还真和能量有点关系.达到平衡稳态的时候,物体的总能量应该是最小的.而总的能量来源于每个物体的重力势能之和.要想让某个物体势能减小,那就让拉着它的绳子在桌面下方的长度尽可能的长,也就是桌面上的要尽可能短.由此看来,某个物体的势能与桌面上的绳子的长度.物体重量都成正比. 于是,为了找到平衡点,我们要找一个点使得\(\sum_{i=1}^n d_i*w_i\…
题目链接 一个比较好的解释? 模拟退火(Simulated Annealing,SA): (1)初始化一个温度(充分大).初始解状态S.每个T值的迭代次数. (2)对i=1,...,L,做(3)至(7)步. (3)产生新解S'. (4)计算Δt=C(S')-C(S),其中C(S)为评价函数. (5)若Δt<0,则接受新解S'作为当前解:否则以exp(-Δt/(kT))的概率接受S'作为当前解(k为玻尔兹曼常数,一般不管它?) (6)如果满足终止条件,则输出当前解作为最优解,结束程序. 终止条件通…
https://www.lydsy.com/JudgeOnline/problem.php?id=3680 https://www.luogu.org/problemnew/show/P1337 有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到地上),且忽略所有的摩擦. 问绳结X最终平衡于何处. 注意:桌面上的洞都比绳结X小得多,所以即使某个重物特别重,绳结X也…
题目描述 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到地上),且忽略所有的摩擦. 问绳结X最终平衡于何处. 注意:桌面上的洞都比绳结X小得多,所以即使某个重物特别重,绳结X也不可能穿过桌面上的洞掉下来,最多是卡在某个洞口处. 输入输出格式 输入格式: 文件的第一行为一个正整数n(1≤n≤1000),表示重物和洞的数目.接下来的n行,每行是3个整数:Xi…
题目链接 正解就算了吧,谁叫我理生化 语数外 政史地都菜呢 模拟退火真玄学,不知道发生了什么就跑出答案了,原理就算了吧,能用(pianfen)就好. 当重物平衡时,势能一定是最小的,于是当我随机出一个点时,累加所有重物到这个点的距离乘这个重物的质量的积,这样就能反映势能的相对大小了. 为什么不用考虑方向?自己脑补脑补就好了,反正平衡时这个东西也一定最小. 然后就是跑看脸的\(SA\)了,这个八位质数真神奇,交了很多遍都没过,一交这个就过了. #include <cstdio> #include…
我对模拟退火的理解:https://www.cnblogs.com/AKMer/p/9580982.html 我对爬山的理解:https://www.cnblogs.com/AKMer/p/9555215.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3680 模拟退火在计算几何方面有很大的用处,特别是求费马点一类的问题. 作为一个文化课很渣的人我就没办法详细地告诉你这道题怎么从物理题转移成信息学题目了.但是灵性的理解一下…