第197周 leetcode题解

今天上午比赛只写了前三题,所以第一个视频只含前三题:

leetcode 197场题解

第四题:爬山算法/退火算法

leetcode 197场 第四题爬山算法

爬山算法:
在平面区间内找点,然后更新优的点,进行不断缩小屏幕,找到满足精度的值
参考博客

参考代码:

class Solution {
double x[60],y[60];
int n;
double sum(double px,double py)
{
    double ans=0;
    for(int i=0;i<n;i++)
    {
        ans+=sqrt((x[i]-px)*(x[i]-px)+(y[i]-py)*(y[i]-py));
    }
    return ans;
}
public:
    double getMinDistSum(vector<vector<int>>& positions) {
         n=positions.size();
         for(int i=0;i<n;i++)
         {
             x[i]=positions[i][0],y[i]=positions[i][1];
         }
         double pr=1000,px=x[0],py=y[0];
         while(pr>0.00001)
         {
             double rad=rand()%360+1;
             double sx=px+pr*cos(rad);
             double sy=py+pr*sin(rad);
             if(sum(sx,sy)<sum(px,py))
             {
                 px=sx,py=sy;
             }
             pr*=0.99;
         }
         return sum(px,py);
    }
};

爬山算法
例题题目:POJ 2420
用g++时:double的输出符号需要用 %f
c++ 用 %lf
不然g++过不去,c++可以过
参考代码:

扫描二维码关注公众号,回复: 11430230 查看本文章
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <cstring>
#include <cstdlib>
#include <math.h>
using namespace std;
typedef long long ll;
const int N = 1005;
const int maxn = 1e6 + 5;
ll a[maxn], b[maxn];
int dp[maxn], dx[maxn], num[maxn];
double x[N], y[N];
int n;
double sum(double px, double py)
{
	double ans = 0;
	for (int i = 0; i < n; i++)
	{
		ans += sqrt((x[i] - px) * (x[i] - px) + (y[i] - py) * (y[i] - py));
	}
	return ans;
}
int main()
{
	// ios::sync_with_stdio(false);
	// cin.tie(0);
	while (cin >> n)
	{
		for (int i = 0; i < n; i++)
		{
			cin >> x[i] >> y[i];
		}
		double pr = 10000;
		double px = x[0], py = y[0];
		while (pr > 1e-9)
		{
			double rad = rand() % 360 + 1;
			double sx = px + pr * cos(rad);
			double sy = py + pr * sin(rad);
			if (sum(sx, sy) < sum(px, py))
			{
				px = sx, py = sy;
			}
			pr *= 0.99;
		}
		printf("%.0lf\n", sum(px, py));
	}
}

猜你喜欢

转载自blog.csdn.net/yangzijiangac/article/details/107305441
今日推荐