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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

微软2014编程之美初赛第一场——题目3 : 活动中心

發(fā)布時(shí)間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微软2014编程之美初赛第一场——题目3 : 活动中心 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【來(lái)源】

題目3 : 活動(dòng)中心

【分析】

本題採(cǎi)用的是三分法。

輸入的一組點(diǎn)中找出左右邊界。作為起始邊界。 while(右邊界-左邊界<精度){將左右邊界構(gòu)成的線段均勻分成3段,推斷切割點(diǎn)的距離關(guān)系,抹去距離大的一段。更新左右邊界。 } 輸出左(右)邊界

【代碼】

#include <iostream> #include <vector> #include <cmath> #include <iomanip> using namespace std;struct Point {int x;int y; };double calc(double x, vector<Point> points) {double distance = 0;for (int i = 0; i < points.size(); ++i){double d = (points[i].x - x)*(points[i].x - x) + (points[i].y)*(points[i].y);distance += sqrt(d);}return distance; }int main() {int T;cin >> T;for(int casenum = 0; casenum < T; ++casenum){int N;cin >> N;vector<Point> points;Point p;double maxX = -1000000;double minX = 1000000;for (int i = 0; i < N; ++i){cin >> p.x >> p.y;if (p.x < minX){minX = p.x;}if (p.x > maxX){maxX = p.x;}points.push_back(p);}double left = minX;double right = maxX;double m1, m2;while (right - left >= 5e-8){m1 = (left * 2 + right) / 3.0;m2 = (right * 2 + left) / 3.0;double v1 = calc(m1, points);double v2 = calc(m2, points);if (v1 < v2){right = m2;}else{left = m1;}}cout << fixed << setprecision(8);cout << "Case " << casenum+1 << ": " << left << endl;}//system("pause");return 0; }【點(diǎn)評(píng)】

本題與去年編程之美的題目集會(huì)很相似。

解法也比較雷同。

【備注】

本代碼小數(shù)據(jù)AC,大數(shù)據(jù)WA。

總結(jié)

以上是生活随笔為你收集整理的微软2014编程之美初赛第一场——题目3 : 活动中心的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。