AC日記 奶牛集會 洛谷 P2345

2022-05-14 06:08:44 字數 1216 閱讀 4408

奶牛集會

思路:把奶牛按照v排序;

然後,每次都把奶牛放入乙個集合s;

因為奶牛已經排序;

所以,每次第i次放入奶牛起作用的v就是vi;

每次ans+=(xi*sum-sumxl)*vi+(sumxr-xi*sum)*vi;

可以用線段樹實現;

來,上**:

#include #include 

#include

#include

using

namespace

std;

#define maxn 20005

struct

cowtype ;

struct

cowtype cow[maxn];

struct

treenodetype ;

struct treenodetype tree[maxn<<2

];int

n;long

long

ans,sx,ss;

inline

void

in(int &now)

}bool

cmp(cowtype aa,cowtype bb)

void tree_build(int now,int l,int

r)void tree_add(int now,int

to)

if(cow[to].xi<=tree[now].mid) tree_add(now<<1

,to);

else tree_add(now<<1|1

,to);

tree[now].xx=tree[now<<1].xx+tree[now<<1|1

].xx;

tree[now].sum=tree[now<<1].sum+tree[now<<1|1

].sum;

}void tree_query(int now,int l,int

r)

if(l>tree[now].mid) tree_query(now<<1|1

,l,r);

else

if(r<=tree[now].mid) tree_query(now<<1

,l,r);

else

}int

main()

cout

}

P2345 奶牛集會

約翰的n 頭奶牛每年都會參加 哞哞大會 哞哞大會是奶牛界的盛事。集會上的活動很多,比如堆乾草,跨柵欄,摸牛仔的屁股等等。它們參加活動時會聚在一起,第i 頭奶牛的座標為xi,沒有兩頭奶牛的座標是相同的。奶牛們的叫聲很大,第i 頭和第j 頭奶牛交流,會發出max xi xj 的音量,其中vi 和vj 分...

P2345 奶牛集會(樹狀陣列)

moofest,2004 open 約翰的n 頭奶牛每年都會參加 哞哞大會 哞哞大會是奶牛界的盛事。集會上的活動很 多,比如堆乾草,跨柵欄,摸牛仔的屁股等等。它們參加活動時會聚在一起,第i 頭奶牛的座標為xi,沒有兩頭奶牛的座標是相同的。奶牛們的叫聲很大,第i 頭和第j 頭奶牛交流,會發出max x...

P2345 奶牛集會(樹狀陣列or模擬)

moofest,2004 open 約翰的n 頭奶牛每年都會參加 哞哞大會 哞哞大會是奶牛界的盛事。集會上的活動很 多,比如堆乾草,跨柵欄,摸牛仔的屁股等等。它們參加活動時會聚在一起,第i 頭奶牛的座標為xi,沒有兩頭奶牛的座標是相同的。奶牛們的叫聲很大,第i 頭和第j 頭奶牛交流,會發出max x...