日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

hdu3714 水三分

發布時間:2025/6/17 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu3714 水三分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 給你一些函數 y = ax^2 + bx + c,的a >= 0 的二次函數,x的范圍是0--1000,
問你在這個范圍內函數值最大的最小是多少,最大指的是對于某一個x最大的那個y,最小指的是全體的x范圍中最大的那個最小..


思路:

? ? ? 因為a>=0 所以都是開口向上的,如果話F(n) 的 xy( x<= 0 && x <= 1000),圖像肯定是單調或者凹性的,所以直接三分就行了..


#include<stdio.h> #include<math.h>#define eps 1e-9 #define N 10000 + 100 typedef struct {double a ,b ,c; }NODE;NODE node[N];double F(double x ,int n) {double ans = -1000000000;for(int i = 1 ;i <= n ;i ++){double y = node[i].a * x * x + node[i].b * x + node[i].c;if(ans < y) ans = y;}return ans; }double Search3(int n) {double low ,up ,mid ,mmid;low = 0 ,up = 1000;double dis1 ,dis2;while(1){mid = (low + up) / 2;mmid = (mid + up) / 2;dis1 = F(mid ,n);dis2 = F(mmid ,n);if(dis1 > dis2) low = mid;else up = mmid;if(up - low < eps) break;}return dis1; }int main () {int t ,n ,i;scanf("%d" ,&t);while(t--){scanf("%d" ,&n);for(i = 1 ;i <= n ;i ++)scanf("%lf %lf %lf" ,&node[i].a ,&node[i].b ,&node[i].c);printf("%.4lf\n" ,Search3(n));}return 0; }

總結

以上是生活随笔為你收集整理的hdu3714 水三分的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。