hdu 2899 Strange fuction —— 模拟退火
2024-09-07 01:49:19
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2899
模拟退火;
怎么也过不了,竟然是忘了写 lst = tmp ...
还是挺容易A的。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<ctime>
#define eps 1e-17
#define dt 0.98
using namespace std;
typedef double db;
db y,ans,ansx;
db pw(db a,int b)
{
db ret=;
for(;b;b>>=,a=a*a)
if(b&)ret=ret*a;
return ret;
}
db cal(db x){return *pw(x,)+*pw(x,)+*pw(x,)+*pw(x,)-y*x;}
void SA()
{
db T=,x=ansx,lst=ans,tx,tmp;
while(T>eps)
{
tx=x+(rand()*-RAND_MAX)*T;
if(tx>)tx=; if(tx<)tx=;
tmp=cal(tx); db delt=tmp-lst;
if(delt<||exp(delt/T)*RAND_MAX<rand())x=tx,lst=tmp;
if(tmp<ans)ans=tmp;
T*=dt;
}
}
int main()
{
srand(time());
int T; scanf("%d",&T);
while(T--)
{
scanf("%lf",&y);
ans=cal(); ansx=;
SA();
printf("%.4lf\n",ans);
}
return ;
}
最新文章
- 安全协议系列(五)---- IKE 与 IPSec(中)
- 快速了解SPA单页面应用
- css实现一段不够一行时居中显示,多于一行时两端对齐
- 反转字符串--C和Python
- Android实现高仿QQ附近的人搜索展示
- powermockito “mock public 方法内部 Private方法的问题”
- MVC+EF+Spring.Net代码生成器
- 登陆shell与交互式非登陆shell的区别
- JAVA 对象引用,以及对象赋值(转)
- Boost Thread学习笔记五
- c++ :: 域操作符
- poj2386
- hibernate事务并发问题(脏读,不可重复读,幻读)
- 面向对象设计(Object-Oriented Design,OOD)
- jQuery(function(){...})与(function($){...})(jQuery)的“兄弟”情结
- hiho1257 Snake Carpet
- Spring Boot Endpoint
- 2017-2018 ACM-ICPC Southeast Regional Contest (Div. 1)
- Set集合架构和常用实现类的源码分析以及实例应用
- 转:【专题五】TCP编程