時間限制: 0 sec 記憶體限制: 128 mb
提交: 54 解決: 21
[提交][狀態][討論版][命題人:外部匯入]
老管家是乙個聰明能幹的人。他為財主工作了整整10年,財主為了讓自已賬目更加清楚。要求管家每天記k次賬,由於管家聰明能幹,因而管家總是讓財主十分滿意。但是由於一些人的挑撥,財主還是對管家產生了懷疑。於是他決定用一種特別的方法來判斷管家的忠誠,他把每次的賬目按1,2,3…編號,然後不定時的問管家問題,問題是這樣的:在a到b號賬中最少的一筆是多少?為了讓管家沒時間作假他總是一次問多個問題。 在詢問過程中賬本的內容可能會被修改
輸入中第一行有兩個數m,n表示有m(m< =100000)筆賬,n表示有n個問題,n< =100000。 接下來每行為3個數字,第乙個p為數字1或數字2,第二個數為x,第三個數為y 當p=1 則查詢x,y區間 當p=2 則改變第x個數為y
輸出檔案中為每個問題的答案。具體檢視樣例。
10 31 2 3 4 5 6 7 8 9 10
1 2 7
2 2 0
1 1 10
2 0
#include #include#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long
ll;const ll maxn = 1
<<17
;const ll maxd = 1e8+10
;const ll mod = 99824435300
;ll b[maxn];
ll date[maxn*4-1
],n;
void
init(ll nn)
for(ll i=1;i<=2*n-1;i++)
}void
update(ll k,ll a)
}ll query(ll a,ll b,ll k,ll l,ll r)
if(a<=l&&r<=b)
else
}int
main()
ll r,q;
for(i=1;i<=m;i++)
if(l>r)
if(l==r)
else
continue
; }
ll mm=0
; printf(
"%lld
",query(max(l-1,mm),r,0,0
,n));
if(i}
return0;
}
posted on
2019-04-02 18:53
蔡軍帥_acm 閱讀(
...)
編輯收藏
計蒜客 管家的忠誠 線段樹
老管家是乙個聰明能幹的人。他為財主工作了整整10年,財主為了讓自已賬目更加清楚。要求管家每天記k次賬,由於管家聰明能幹,因而管家總是讓財主十分滿意。但是由於一些人的挑撥,財主還是對管家產生了懷疑。於是他決定用一種特別的方法來判斷管家的忠誠,他把每次的賬目按1,2,3 編號,然後不定時的問管家問題,問...
小H的詢問(線段樹)
線段樹需要維護的 最大有效子區間權值和,左端最大有效子區間權值和,右端最大有效子區間權值和,區間和,本區間有效性。include include include include include include include define maxn 1000005 using namespace s...
線段樹 簡單的整數問題2
給定乙個長度為n的數列a,以及m條指令,每條指令可能是以下兩種之一 1 c l r d 表示把 a l a l 1 a r 都加上 d。2 q l r 表示詢問 數列中第 l r 個數的和。對於每個詢問,輸出乙個整數表示答案。輸入格式 第一行兩個整數n,m。第二行n個整數a i 接下來m行表示m條指...