2020ICPC上海 I Sky Garden(亂搞,思維)
題意:
就是n個同心圓n條線,第i個圓半徑為i,線平分圓。
求所有交點間最短距離的和。
思路:
看資料範圍很小,所以寫了個
m
n
2
mn^2
mn2的演算法,據說可以優化到
O
(
n
)
O(n)
O(n)。
很明顯,一個點到另外一個點的最短距離,要麼就是走半徑到圓心,再走半徑到另外一個點;要麼就是小圓上的那個點先走圓周,再走半徑到大圓上的點。
已經知道了最短距離怎麼算了,那麼就直接列舉每一層上的點到其他層上所有點距離和就ok了。
比較噁心的是,我以為原點是一定要有的,所以一開始特判m=1的情況。
#include <algorithm>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;
const int maxn = 1e3 + 7;
const double PI = acos(-1);
int main() {
int n,m;scanf("%d%d",&n,&m);
double ans = (2 * m + 2 * m * n) * n / 2;
if(m == 1) ans = 0;
for(int i = 1;i <= n;i++) {
double now = 0.0;
double len = PI * i / m;
for(int j = i;j <= n;j++) {
now = 0.0;
now += j - i;
for(int p = 1;p <= m - 1;p++) {
double l1 = len * p + (j - i);
double l2 = i + j;
now += min(l1,l2) * 2;
}
now += i + j;
if(j == i) ans += now * m;
else ans += now * 2 * m;
}
}
printf("%.10f\n",ans);
return 0;
}
相關文章
- 2020ICPC上海 B.Mine Sweeper II(思維,亂搞)
- 2020ICPC 江西省賽 B. Apple(思維)APP
- Bitset 亂搞字串匹配字串匹配
- [技巧] 亂搞技巧 長期更新
- 【胡思亂想】JNI與執行緒池的維護執行緒
- 2.18 The sea I hang upside down will be your sky ——ARC128~130IDE
- 思維體系---技術思維、業務資料思維、產品思維、複合思維
- 淺析工具思維、產品思維、品牌思維與定位
- 求職思維和招聘思維求職
- 把流量思維變成留量思維
- 框架思維框架
- 極思維
- 黑客思維黑客
- Python!請不要再亂搞 Linux 發行版了PythonLinux
- 關於浮動會錯亂的問題——轉換思維尋找替代方案
- 亂彈馬斯克與比爾蓋茲兩位首富的不同思維模式馬斯克模式
- codeforces Photo of The Sky
- 你是整體思維還是分析思維? - kentbeck
- 計算思維
- 模型思維(01)模型
- 基於亂搞做法的無害版 readme4.0
- 提升思維邏輯—SimpleMind Pro(思維導圖) for Mac/winMac
- 什麼是產品思維和專案思維? - Shreyas
- 《計算思維史話》思維導圖——持續更新
- 創新思維框架:第一原則思維 - Neil Kakkar框架
- 英語思維與物件導向分析思維的關係物件
- 運維工程師思維導圖運維工程師
- typora思維導圖
- 技術思維2
- 前端思維導圖前端
- Java思維理清思路Java
- HDU – 4811 – Ball (思維)
- 【胡思亂想】命令模式 與 Thread Runnable模式thread
- 程式碼之外系列第一:索證思維與索進思維
- 上海三思LED科技多維度助力第19屆杭州亞運會勝利舉辦
- Xmind使用教程:給思維導圖加水印 「Xmind思維導圖2023」
- 思維決定命運,從四個方面理解深度思維的概念
- 什麼是Actor思維?