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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

喵哈哈村的魔法考试 Round #10 (Div.2) B

發布時間:2023/12/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 喵哈哈村的魔法考试 Round #10 (Div.2) B 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

喵哈哈村與嘩啦啦村的大戰(二)

發布時間: 2017年3月27日 09:25?? 時間限制: 1000ms?? 內存限制: 128M

描述

喵哈哈村因為和嘩啦啦村爭奪稀有的水晶資源,展開了激烈的戰斗。

喵哈哈村與嘩啦啦村戰斗的地圖可以視為一個二維平面。

喵哈哈村準備修建n個防御工事,唯一的要求就是任意兩個防御工事之間的距離不得大于R。

在喵哈哈村修建完防御工事之后,嘩啦啦村準備選擇一個防御工事進行攻擊,這個防御工事包括離被攻擊防御工事距離小于等于r的防御工事都將被摧毀。其中:R*R=2*r*r。

現在問題來了,請問喵哈哈村怎么修建,才能使得最后被摧毀的建筑最少。

輸入

本題包含若干組測試數據。
第一行一個n,表示喵哈哈村要修建的建筑數量。

滿足 1<=n<=1e18

輸出

輸出最少被摧毀的數量。

樣例輸入1 復制 3 樣例輸出1 1

題解:我感覺這個題目還是稍微有點難想啊。。。但是想出來了的話就很簡單了(廢話)。
步驟:先手動模擬一下,第一個點,以半徑為R作圓;第二個點一定在圓內,最好的情況就是在圓弧上,再以R為半徑作第二個點的圓;然后第三個點在前兩個圓的相交的部分內,同樣的方法再作第三個圓。
然后我們可以發現這是一個等邊三角形啊!找三角形的重心(為什么會想重心?因為我想最優情況應該是重心到三個點的距離都大于安全距離)發現,這個點到三個頂點的距離安全距離,所以不能建立在
重心上,然后我們就會想去盡可能減少被摧毀的建筑物,至少是一個,既然重心的不滿足我想要的條件,那么我就想最壞情況就摧毀兩個吧,所以把第四個點放在其中一個頂點的盡可能近的位置;接下來的
點都是這樣分析,然后就大膽猜想一下這個解應該是(n+2)/3 ... 提交上去,A了, 果然是啊,hhh。 說明做題的時候還是應該相信自己的判斷和直覺(當然是在有理論依據的情況下) 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 5 int main(){ 6 ll n; 7 while(cin>>n){ 8 if(n%3==0) cout<<n/3<<endl; 9 else{ 10 cout<<n/3+1<<endl; 11 } 12 } 13 return 0; 14 }

?

轉載于:https://www.cnblogs.com/ledoc/p/6649006.html

總結

以上是生活随笔為你收集整理的喵哈哈村的魔法考试 Round #10 (Div.2) B的全部內容,希望文章能夠幫你解決所遇到的問題。

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