小c雖然沒有參加noi2016, 但當他看到"國王飲水記"這題時還是迅速秒掉了.
小c認為這題太水了,於是他決定對這題進行加強.
現在小c桌上有n杯水排成一行,第i杯水中有wi 單位體積的水. 他會選擇乙個區間[l, r],
並拿乙個初始為空的杯子(杯子的容積無限大),他可以重複無限次以下操作:
• 選定任意一杯水i,i ∈ [l, r].
• 使i和它拿著的杯子裡的水的體積變為它們的平均值.
小c希望進行若干操作後最大化杯子裡的水的體積,設g(l, r)為這個最大值.你需要求:
從檔案drink.in中讀入資料.
第一行乙個整數n.
第二行n個整數,第i個為wi.
輸出到檔案drink.out中.
輸出乙個實數表示答案.
你的答案被認為是正確的,當且僅當其與標準答案的絕對誤差不超過10^−2 .
這題告訴我們,答案為小數的題目,如果不mod,就要把卡精度視為一種ac策略
貪貪心就好了,卡卡精度就a了,好像國王飲水記是發了乙個高精度小數模板吧?
還有用陣列維護鍊錶,雖然只能刪但功能強大,模擬於只能加的並查集
accode:
#include#include#include#include#define maxn 1000005
#define s 23
using namespace std;
int n;
double wt[maxn],pow2[s+1];
int pre[maxn],suc[maxn],c[maxn];//用陣列維護的鍊錶雖然只支援刪除,但也支援o(1)下標查詢
inline bool cmp(const int &a,const int &b)
int main()
ans+=2*wt[c[i]]*sum1*sum2;
pre[suc[c[i]]]=pre[c[i]];
suc[pre[c[i]]]=suc[c[i]]; }
printf("%.12lf",ans/n/n);
}
雅禮集訓 小C飲水記
標籤 鍊錶,貪心 暴力做法 貪心,對於每個區間,從大到小排序,顯然,wi大的對答案貢獻越大 時間複雜度o n 3 log n 正解 因為題目輸出實數,所以當交換次數到一定時候,對答案的影響可以忽略不計 這個t大約是30次 對每個wi的貢獻單獨計算 每個wi只對相鄰的t個產生貢獻,所以取前後各t個 計...
2018雅禮集訓1 12 小C飲水記
題面 考場上sb用set,式子還沒化成o t 的,總複雜度o ntlogn n t2 70分滾粗。首先對於一段長度為 k 區間,假設按w1 wk的順序來選,貢獻為 i 1kw i2i 所以顯然要按從大到小的順序來選,然後發現本題不要求取模,所以當 i 很大時,wi 的貢獻就可以忽略不計了。所以我們只...
國王飲水記 題解
題目傳送門 step1 暴力 對於每次詢問,都進行一次krusal計算。include include define maxn 5039 using namespace std inline intread if flag return sum return sum struct jtz e max...