約翰的n 頭奶牛每年都會參加「哞哞大會」。哞哞大會是奶牛界的盛事。集會上的活動很多,比如堆乾草,跨柵欄,摸牛仔的屁股等等。它們參加活動時會聚在一起,第i 頭奶牛的座標為xi,沒有兩頭奶牛的座標是相同的。奶牛們的叫聲很大,第i 頭和第j 頭奶牛交流,會發出max×|xi − xj | 的音量,其中vi 和vj 分別是第i 頭和第j 頭奶牛的聽力。
假設每對奶牛之間同時都在說話,請計算所有奶牛產生的音量之和是多少。
• 第一行:單個整數n,1 ≤ n ≤ 20000
• 第二行到第n + 1 行:第i + 1 行有兩個整數vi 和xi,1 ≤ vi ≤ 20000; 1 ≤ xi ≤ 20000
• 單個整數:表示所有奶牛產生的音量之和
431
2526
43
57
第i頭牛和其他的牛發出的生意就等於=第i頭牛的vi*(它之前牛的數目它的座標-它之前所有牛的座標和)+vi(它之後所有牛的座標和-它之後牛的數目*他的座標),對於牛的數目和牛的座標,我們都可以用樹狀陣列來維護
#include
#define m(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
#define mod 1000000009
using
namespace std;
inline
void
read
(long
long
&x)while
(ch>=
'0'&& ch<=
'9')
if(c==
'-')x=
-x;}
long
long wz[
20010
],yy[
20010
],n,mn=
20000
;long
long ans;
struct nodea[
20010];
bool
cmp(node x,node y)
intlobit
(int x)
void
crwz
(int x)
intz
(int x)
void
cryy
(int x,
int v)
inty
(int x)
intjdz
(int x)
intmain()
printf
("%lld"
,ans)
;return0;
}
P2345 奶牛集會(樹狀陣列)
moofest,2004 open 約翰的n 頭奶牛每年都會參加 哞哞大會 哞哞大會是奶牛界的盛事。集會上的活動很 多,比如堆乾草,跨柵欄,摸牛仔的屁股等等。它們參加活動時會聚在一起,第i 頭奶牛的座標為xi,沒有兩頭奶牛的座標是相同的。奶牛們的叫聲很大,第i 頭和第j 頭奶牛交流,會發出max x...
P2345 奶牛集會(樹狀陣列or模擬)
moofest,2004 open 約翰的n 頭奶牛每年都會參加 哞哞大會 哞哞大會是奶牛界的盛事。集會上的活動很 多,比如堆乾草,跨柵欄,摸牛仔的屁股等等。它們參加活動時會聚在一起,第i 頭奶牛的座標為xi,沒有兩頭奶牛的座標是相同的。奶牛們的叫聲很大,第i 頭和第j 頭奶牛交流,會發出max x...
P2345 奶牛集會(樹狀陣列 CDQ分治)
題目描述 約翰的n 頭奶牛每年都會參加 哞哞大會 哞哞大會是奶牛界的盛事。集會上的活動很多,比如堆乾草,跨柵欄,摸牛仔的屁股等等。它們參加活動時會聚在一起,第i 頭奶牛的座標為xi,沒有兩頭奶牛的座標是相同的。奶牛們的叫聲很大,第i 頭和第j 頭奶牛交流,會發出max xi xj 的音量,其中vi ...