求助退火
查看原帖
求助退火
526519
Aisaka_Taiga楼主2023/7/9 17:45

不知道为什么,本地运行多次都是没问题的,但是一交就挂。


#include <bits/stdc++.h>

#define int long long
#define N 1001000

using namespace std;

int A, B, ans, xx, cnt;

inline void work()
{
//	cout << "cao" << endl;
	double T = 10;
	while(T > 1)
	{
		int x = xx + (rand() + rand() - RAND_MAX) * T;
		int d = abs(x - A - B) - abs(ans - A - B);
		if(d < 0) ans = x;
		else if(exp(-d / T) * RAND_MAX > rand()) xx = x;
		T *= 0.997;
	}
	if(abs(xx - A - B) < (ans - A - B)) ans = xx;
	return ;
}

signed main()
{
	srand(time(NULL));
	cin >> A >> B;
	while(cnt < 5e4) work(), cnt ++;
	cout << ans << endl;
//	cout << A + B << endl;
	return 0;
}
2023/7/9 17:45
加载中...