博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2899Strange fuction(模拟退火)
阅读量:6036 次
发布时间:2019-06-20

本文共 1143 字,大约阅读时间需要 3 分钟。

题意

求 $F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)$的最小值

Sol

强上模拟退火,注意eps要开大!

/**/#include
#include
#include
#include
#include
using namespace std;const int MAXN = 1e6 + 10;const double eps = 1e-10, Dlt = 0.98;int T;double Y, Best;double F(double x) { return 6 * x * x * x * x * x * x * x + 8 * x * x * x * x * x * x + 7 * x * x * x + 5 * x * x - Y * x;}double getrand(double T) { return T * ((rand() << 1) - RAND_MAX);}double solve(int id) { double x = id, now = F(x); Best = min(Best, now); for(double T = 101; T > eps; T *= Dlt) { double wx = x + getrand(T), wv = F(wx); if(wx > eps && (wx - 100 <= eps)) { if(wv < Best) x = wx, Best = wv, now = wv; if(wv < now || ((exp((wv - now) / T)) * RAND_MAX < rand())) now = wv, x = wx; } }}int main() {srand((unsigned)time(NULL)); scanf("%d", &T); while(T--) { Best = 1e20; scanf("%lf", &Y); int times = 100; while(times--) solve(times); printf("%.4lf\n", Best); } return 0;}/*31002001000000000*/

 

转载地址:http://uylhx.baihongyu.com/

你可能感兴趣的文章
【面试次体验】堆糖前端开发实习生
查看>>
基于apache实现负载均衡调度请求至后端tomcat服务器集群的实现
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
Android Activity详解(一)
查看>>
快准车服完成3000万元A+轮融资,年底将开始B轮融资
查看>>
让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
查看>>
MySQL 数据约束
查看>>
我的友情链接
查看>>
SERVLET容器简介与JSP的关系
查看>>
《服务器SSH Public Key认证指南》-补充
查看>>
我的友情链接
查看>>
Java break continue return 的区别
查看>>
算法(Algorithms)第4版 练习 1.3.4
查看>>
jquery easyUI checkbox复选项获取并传后台
查看>>
浅析NopCommerce的多语言方案
查看>>
设计模式之简单工厂模式
查看>>
C++中变量的持续性、链接性和作用域详解
查看>>
2017 4月5日上午
查看>>
Google Chrome开发者工具
查看>>