uva 10228 - Star not a Tree?(模拟退火)】的更多相关文章

题目链接:uva 10228 - Star not a Tree? 题目大意:给定若干个点,求费马点(距离全部点的距离和最小的点) 解题思路:模拟退火算法,每次向周围尝试性的移动步长,假设发现更长处,则转移.每次操作之后降低步长后做相同的操作,直到步长小于指定精度. #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <ctime> #…
题目链接: A Star not a Tree? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5219   Accepted: 2491 Description Luke wants to upgrade his home computer network from 10mbs to 100mbs. His existing network uses 10base2 (coaxial) cables that allo…
题目链接 居然1Y了,以前写的模拟退火很靠谱啊. #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <ctime> #include <cstdlib> #include <iostream> using namespace std; struct point { double x,y; }p[]; int n;…
链接 求某一点到其它点距离和最小,求这个和,这个点 为费马点. 做法:模拟退火 #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stdlib.h> #include<vector> #include<cmath> #include<queue> #include<set> usin…
题目链接:http://poj.org/problem?id=2420 题目大意:每组数据中给n个点(n<=100),求平面中一个点使得这个点到n个点的距离之和最小. 分析:一开始看到这个题想必是不好做的...因为平面太大了,不能使用枚举的方法,于是想到随机点出来比较.可是总不能无限的枚举,而且随机点出的答案需要是最优值还是一个玄学问题.所以想到了模拟退火的方法. 具体操作:首先随意找一个点作为出发点,然后设置一个初始温度,使得这个点可以在这个温度下乱跑[但是只让它往上下左右跑]温度越高,这个点…
题目大意: 给定n个点,求一个点,使其到这n个点的距离最小.(\(n \leq 100\)) 题解 模拟退火上 #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; inline void read(int &x){ x=0;char ch;bool flag = fal…
题意 题目链接 给出$n$个点,求出一个点使得到各个点的距离之和最小,距离为欧几里得距离 Sol 模拟退火真是玄学,我退了一上午,最后把exp函数去了就A了. 后来改了改,发现是大小符号的问题.. 但是 这样是对的. 然后把RAND_MAX除过去就错了.. 需要改大小号才行.真是玄学... /* */ #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include&…
题目:http://poj.org/problem?id=2420 给出 n 个点的坐标,求费马点: 上模拟退火. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<ctime> #include<cmath> #define eps 1e-17 #define…
题目:http://poj.org/problem?id=2420 精度设成1e-17,做三遍.ans设成double,最后再取整. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<ctime> #define db double usin…
题目传送门 题目大意: 给出100个二维平面上的点,让你找到一个新的点,使这个点到其他所有点的距离总和最小. 思路: 模拟退火模板题,我也不懂为什么,而且一个很有意思的点,就是初始点如果是按照我的代码里设置的,那么T就和我设置的一样就可以了,但此时初始点如果稍微改动一下(比如横坐标加一),T就必须再增加一些才可以(我试了一下2*T才可以),所以初始点的选取也很重要. #include<cstdio> #include<cstring> #include<stdlib.h>…
http://write.blog.csdn.net/postedit A Star not a Tree? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3751   Accepted: 1858 Description Luke wants to upgrade his home computer network from 10mbs to 100mbs. His existing network uses 10ba…
A Star not a Tree? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4058   Accepted: 2005 Description Luke wants to upgrade his home computer network from 10mbs to 100mbs. His existing network uses 10base2 (coaxial) cables that allow you…
A Star not a Tree? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3435   Accepted: 1724 Description Luke wants to upgrade his home computer network from 10mbs to 100mbs. His existing network uses 10base2 (coaxial) cables that allow you…
题目链接 pojA Star not a Tree? 题解 啊,模拟退火是个好东西 模拟退火即可 代码 #include<cmath> #include<cstdio> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9')c = getchar(); while(c <= '9' &&…
原文链接:https://www.dreamwings.cn/poj2420/2838.html A Star not a Tree? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5788   Accepted: 2730 Description Luke wants to upgrade his home computer network from 10mbs to 100mbs. His existing netw…
B - A Star not a Tree? Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88808#problem/B Description Luke wants to upgrade his home computer network from 10mbs to 100mbs. His existing network uses 10ba…
题目传送门 /* 题意:求费马点 三分:对x轴和y轴求极值,使到每个点的距离和最小 */ #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> ; const int INF = 0x3f3f3f3f; double x[MAXN], y[MAXN]; int n; double sum(double x1, double y1) { ; ; i<=n; +…
题目链接:http://poj.org/problem?id=2420 求费马点,即到所有其他点总和距离最小的点. 一开始想枚举一个坐标,另一个坐标二分的,但是check的时候还是O(n)的,复杂度相当于O(n^2lgn),没意义. 学习一种神贪心,模拟退火.感觉和启发式搜索有点像啊,又有点像牛顿迭代. 思路就是,固定一个点和一个步长,从这个点开始向四个方向扩展,扩展的步长就是当前步长.如果扩展到的点可以更新答案,那么记住这个点,也就是说这个贪心方向(梯度?)是正确的.就可以拿着这个点继续沿着这…
题目 传送门:QWQ 分析 军训完状态不好QwQ,做不动难题,于是就学了下模拟退火. 之前一直以为是个非常nb的东西,主要原因可能是差不多省选前我试着学一下但是根本看不懂? 骗分利器,但据说由于调参困难,很多情况比不上多点爬山? 总体来说模拟退火的精髓就是: 可以看到T越大,转移的概率越高. exp是在cmath里面有的,直接用就ok. 本题就是找出n个点的费马点,即找出一个点到这n个点的距离和最小. 代码 // #include <bits/stdc++.h> // POJ 2420 #in…
题意:求平面上一个点,使其到给定的n个点的距离和最小,即费马点. 模拟退火的思想是随机移动,然后100%接受更优解,以一定概率接受更劣解.移动的过程中温度缓慢降低,接受更劣解的概率降低. 在网上看到的代码都不太靠谱,我这个代码的关键之处在于,每一次随机走点时,不是1次,而是在10次随机中取最优者作为当前这一步的随机结果,这样运行时非常优秀. T降温时乘0.9/0.99这样的数都行,越接近1越准确,但速度越慢. 这份代码即使用0.9也可以ac. #include<cstdio> #include…
题目链接:https://cn.vjudge.net/problem/POJ-2420 题意 给出n个点,找一个点,使得这个点到其余所有点距离之和最小. 思路 一开始就在抖机灵考虑梯度下降,猜测是个凸优化问题,完全在抖机灵. 最后实在是没得其他思路了,看了看题解. 居然是模拟退火,而且写的貌似没有随机这个因素,完全是爬山法好吧? 梯度下降,复杂度O(60000n) 提交过程 WA 偏导方程没给对 AC 其实maxEpoch没必要这么大,只要发现多次best值更新小于1即可退出循环 代码 #inc…
好的,在h^ovny的安利下做了此题 模拟退火中的大水题,想当年联赛的时候都差点打了退火,正解貌似是三分套三分,我记得上一道三分套三分的题我就是退火水过去的... 貌似B班在讲退火这个大玄学... 这题还是比较简单的啦~ 随机化坐标x,y就可以啦 然而格式错了n遍.....死的心都有了 最后输出是四舍五入!!!四舍五入!!!四舍五入!!! 两组答案中间有空行!!!有空行!!!有空行!!!   然后只要会退火的板子就可以啦 //LevenKoko#include<bits/stdc++.h> u…
[返回模拟退火略解] 题目描述 一平面上有 nnn 个点 {Ai}\{A_i\}{Ai​},求一个点 XXX 使得σ=∑i=1ndis(Ai,X)\sigma=\sum_{i=1}^{n}{dis(A_i,X)}σ=i=1∑n​dis(Ai​,X)的值最小.求 σmin⁡\sigma_{\min}σmin​. Solution 10228\text{Solution 10228}Solution 10228 SA 模板. 对于每个温度 τ\tauτ,尝试找一个新解. 若新解更优,则接受:若新解次…
http://poj.org/problem?id=2420 题意:给n个点,求一个点使得到这个n个点的距离和最短,输出这个最短距离(n<=100) #include <cstdio> #include <cstdlib> #include <cmath> #include <algorithm> using namespace std; const int N=5005; struct P { int x, y; }a[N]; int n; inli…
模拟退火 Orz HZWER 这题的题意是在二维平面内找一点,使得这点到给定的n个点的距离和最小……0.0 模拟退火算法请戳这里 //POJ 2420 #include<ctime> #include<cmath> #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #define rep(i…
来源: Waterloo Local 2002.01.26 题目大意: 找出$n$个点的费马点. 思路: 模拟退火. 首先任取其中一个点(或随机一个坐标)作为基准点,每次向四周找距离为$t$的点,如果找到的点总距离更小,就把该点作为新的基准点. 每次找完后降低温度$t$,重复上述过程,直到温度$t$低于阈值$threshold$. 另外注意在POJ上double类型输出不能用%lf,只能用%f,一开始因为这个WA了好几次. #include<cmath> #include<cstdio&…
蒟蒻开始学模拟退火…… 起初一直不肯学,因为毕竟玄学算法…… 哎呀玄学怎么就没用呢?对不对? #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cstdlib> #include<cmath> #include<ctime> using namespace std; int n; double xx,yy,a…
题目:给你一些有向边(端点,长度为1).推断给定的图是否是一棵树. 分析:图论.并查集.树是一个全部点都连接的有向无环图(不连接的是森林). 依照树的定义推断是否有环就可以,有环分成两种: 1.链状环:2.存在节点有多个父亲节点: 这两种情况,仅仅要用并查集在合并前推断是否数以一个集合就可以, 假设在统一集合中,这条边一定形成环: 注意推断不能是森林. 说明:╮(╯▽╰)╭又是一个没有数据范围的题目. #include <iostream> #include <cstdlib> #…
我对模拟退火的理解:https://www.cnblogs.com/AKMer/p/9580982.html 我对爬山的理解:https://www.cnblogs.com/AKMer/p/9555215.html 题目传送门:http://poj.org/problem?id=2420 这题就是要我们求平面图费马点-- 然后我似乎先写了广义费马点--顺序错了--至于对费马点的解释去这里看吧-- BZOJ3680吊打XXX:https://www.cnblogs.com/AKMer/p/9588…
题意:给定$n$个点,找一个点使得这个点到所有点的距离之和最小,求出这个最小距离 传说中的模拟退火- #include<cstdio> #include<ctime> #include<cmath> #include<cstdlib> const int N=105; struct point { double x,y; }ps[N]; int n; double t,ans,tans,tx,ty,nx,ny,temp; inline double get(…