施肥根據題意,我們可以知道每次都要對不同的區間進行修改操作,如果單純暴力求解的話肯定會超時,所以想到差分區間,每次單點修改區間,最後求一下字首和即可。同時注意資料範圍,使用long long 資料型別防止爆int.題目描述:
qau是著名的農業大學,所以學校裡的樹很多。假設學校有n顆樹,樹按1~n編號排列。
一天,qauer因為偷釣虹子湖的魚被農學院的老師們抓住了,他懲罰qauer為學校裡的樹施肥。老師們要求你去給給定區間的樹施肥一次, 假設有m個老師,每個老師分別給定的施肥區間,並且要求你最後統計所有樹的價值之和。我們規定單個樹的價值等於樹的編號乘以給它施肥的次數。如給第二顆樹施肥三次,它的價值就是2 * 3 = 6。
qauer算了很久,發現學校裡的樹太多了,他算不過來,請你編寫程式幫他統計所有樹的價值之和。
input:
第一行輸入二個數n,m代表樹的總數目與有幾位老師,接下來m行,每行輸入兩個數,代表第i位老師給定的區間。m <= n <= 2e5;
ouput:
輸出1個數,代表在qauer為每棵樹施肥的之後,所有樹的價值之和。
sample input1 :
5 31 2
3 42 3
sample output1 :
15sample input2 :
3 21 3
2 3sample output2 :
11
#include
#define maxn 200005
using
namespace std;
long
long d[maxn]
;long
long ans =0;
intmain()
for(
int i =
1;i <= n;i++
) d[i]
+= d[i -1]
;for
(int i =
1;i <= n;i++
) ans +
= i * d[i]
; cout << ans << endl;
return0;
}
2020多校聯考 簡單題
確實是簡單題。邊權和最小顯然是最小生成樹。對於一條非樹邊,加到樹裡面一定會構成乙個環,那麼環上的樹邊的邊權就一定不能超過這條非樹邊。所以對最小生成樹進行重鏈剖分,對於一條非樹邊 u i,v i 對鏈 u i to v i 進行 modify 維護乙個最小值。而對於一條非樹邊要想成為樹邊,就至少需要把...
2020多校聯考 簡單題
2020.11.23 題目只要求求出 c 的值,它就提示我們 c 和 a b 的值沒有太大關係。照著這個思路我們把 a b 合併一下,搞成二元組。對 a b leq c a b,c to 2 a b c a b 對 a b c a b,c to a b c,2c 我們發現 ab 始終可以並在一起,乾...
校選拔賽F題
給n個二維點,求兩座標差值為相反數的點對數 include using namespace std typedef unsigned long long ull int ans 0 輸出答案 mapca 定義對映,first是點差值,second是這個點差有多少個點 int main map ite...