AcWing 1843 圓形牛棚

2022-09-19 15:12:08 字數 1726 閱讀 9592

作為當代建築的愛好者,農夫約翰建造了乙個完美圓環形狀的新牛棚。

牛棚內部有 \(n\) 個房間,圍成乙個環形,按順時針編號為 \(1∼n\)。

每個房間都既有通向相鄰兩個房間的門,也有通向牛棚外部的門。

約翰想讓第 \(i\) 個房間內恰好有 \(r_i\) 頭牛。

為了讓奶牛們有序的進入牛棚,他計畫開啟乙個外門,讓牛從該門進入。

然後,每頭牛順時針穿過房間,直到到達合適的房間為止。

約翰希望通過合理選擇開啟的門,使得所有奶牛的行走距離之和盡可能小(這裡只考慮每頭牛進入牛棚以後的行走距離)。

請確定他的奶牛需要行走的最小總距離。

第一行包含整數 $n4。

接下來 \(n\) 行,包含 \(r_1,…,r_n\)。

輸出所有奶牛需要行走的最小總距離。

資料範圍

\(3≤n≤1000\),

\(1≤r_i≤100\)

輸入樣例:

547

864

輸出樣例:
48
樣例解釋

最佳方案是讓奶牛們從第二個房間進入。

暴力

題意即求解 \(0\times a[i]+1 \times a[i+1] + \dots + (n-1)\times a[j]\),不妨暴力列舉起始點

// problem: 圓形牛棚

// contest: acwing

// url:

// memory limit: 64 mb

// time limit: 1000 ms

// %%%skyqwq

#include #define pb push_back

#define fi first

#define se second

#define mp make_pair

using namespace std;

typedef long long ll;

typedef pairpii;

template bool chkmax(t &x, t y)

template bool chkmin(t &x, t y)

template void inline read(t &x)

while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar();

x *= f;

}int n,a[2005];

int main()

int res=0x3f3f3f3f;

for(int i=1;i<=n;i++)

template bool chkmin(t &x, t y)

template void inline read(t &x)

while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar();

x *= f;

}int sum,n,a[1005],b[2005];

int main()

for(int i=1;i<=2*n;i++)b[i]+=b[i-1];

int res=sum;

for(int i=2;i<=n;i++)

printf("%d",res);

return 0;

}

CSS3 圓形動畫導航

因為圓一共分為六份,每兩份被乙個父元素包裹,設定父元素旋轉,並且對沒乙份再次設定旋轉,使文字始終保持是正文不會出現傾斜,不易 html class box class top 1span 4span div class top 2span 5span div class top 6span 3spa...

Css3圓形進度條

圓形進度條原理 1 先設定乙個進度容器 目的為了旋轉 在容器中設定兩個隱藏容器,分為左右 目的為了隱藏半圓 再設定兩個半圓邊框 目的是容器再轉動的時候慢慢顯示出來 2 讓每個半圓邊框 與進度條邊框大小一致 超出隱藏容器的,3 讓內容溢位部分 隱藏 4 通過旋轉 讓半圓慢慢顯示 5 左邊的半圓 50 ...

html5Canvas學習筆記 2 圓形

與矩形相比,圓形相對複雜一點,它還需要建立路徑,而且每次結束後需要關閉路徑。第一步 在獲取圖形上下文後,要先建立路徑 cx.beginpath 建立路徑 第二步 圓形函式 cx.arc x,y,r,start,end,anticlockwise 圓形 這裡的引數 x和y和矩形一樣,都是代表距離原點的...