雅禮集訓 小C飲水記

2021-08-14 17:53:40 字數 2342 閱讀 1240

標籤:鍊錶,貪心

暴力做法:

貪心,對於每個區間,從大到小排序,顯然,wi大的對答案貢獻越大

時間複雜度o(n^3 log n)

正解:

因為題目輸出實數,所以當交換次數到一定時候,對答案的影響可以忽略不計

這個t大約是30次

對每個wi的貢獻單獨計算

每個wi只對相鄰的t個產生貢獻,所以取前後各t個

計算公式如下: wi

∑x=1

t∑y=

1t(l

x−1−

lx)∗

(ry−

ry−1

)∗12

x+y−

1=2w

i(∑x

=1t(

lx−1

−lx)

∗12x

)(∑y

=1t(

ry−r

y−1)

∗12y

) 將wi從小到大排序,然後計算完就從鍊錶中無腦刪除

時間複雜度為o(nt+n log n)

25分暴力

#include

#include

#include

#include

#include

#include

#define rep(i,a,b) for(int i=a;i<=b;i++)

#define dep(i,a,b) for(int i=a;i>=b;i--)

#define ll long long

#define mem(x,num) memset(x,num,sizeof x)

#define reg(x) for(int i=last[x];i;i=e[i].next)

using

namespace

std;

inline ll read()

while(ch>='0'&&ch<='9')

return x*f;

}const

int maxn=5e5+6;

double ans;

int n,w[maxn],bin[35];

inline

bool cmp(int x,int y)

void work(int l,int r)

int main()

正解

#include

#include

#include

#include

#include

#include

#define rep(i,a,b) for(int i=a;i<=b;i++)

#define dep(i,a,b) for(int i=a;i>=b;i--)

#define ll long long

#define mem(x,num) memset(x,num,sizeof x)

#define reg(x) for(int i=last[x];i;i=e[i].next)

using

namespace

std;

inline ll read()

while(ch>='0'&&ch<='9')

return x*f;

}const

int maxn=1e6+6;

int _pre[maxn],_next[maxn],n,l[36],r[36];

struct nodew[maxn];

double ans,bin[36];

inline

bool cmp(node a,node b)

rep(j,1,llen)lans+=bin[j]*(l[j-1]-l[j]);

rep(j,1,rlen)rans+=bin[j]*(r[j]-r[j-1]);

ans+=lans*rans*2*w[i].val;

_pre[_next[w[i].id]]=_pre[w[i].id];

_next[_pre[w[i].id]]=_next[w[i].id];

}printf("%.4lf",ans/n/n);

return

0;}

2018雅禮集訓1 12 小C飲水記

題面 考場上sb用set,式子還沒化成o t 的,總複雜度o ntlogn n t2 70分滾粗。首先對於一段長度為 k 區間,假設按w1 wk的順序來選,貢獻為 i 1kw i2i 所以顯然要按從大到小的順序來選,然後發現本題不要求取模,所以當 i 很大時,wi 的貢獻就可以忽略不計了。所以我們只...

雅禮集訓 小C的線段樹

標籤 dp 輸出0可以騙到5分 出題人說這是最簡單的一題,果然題目順序和難度無關qwq 當n m時不存在合法的序列,所以答案為0 我們可以將區間 l,r 看成括號匹配 位置i最終的值就是左邊的左括號數量減去左邊的右括號數量 設f i l r 表示i位置左邊有l個左括號,r個右括號的方案數,ans i...

雅禮國慶集訓

灑落君臣契,飛騰戰伐名。杜甫 公安縣懷古 noip 前的乙個月。這浸滿熱血的虔信,真的會化作墓碑嗎?或許明日我們不再是戰友,但人生終將有無數個此時。define f z,u,v for int z u des z v z des z z struct bnd struct tup template ...