作為當代建築的愛好者,農夫約翰建造了乙個完美圓環形狀的新牛棚。
牛棚內部有 \(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和矩形一樣,都是代表距離原點的...