1394 差和問題
基準時間限制:1 秒 空間限制:131072 kb
有乙個多重集合s(即裡面元素可以有重複),初始狀態下有n個元素,對他進行如下操作:
1、向s裡面新增乙個值為v的元素。輸入格式為1 v
2、向s裡面刪除乙個值為v的元素。輸入格式為2 v
3、詢問s裡面的元素兩兩之差絕對值之和。輸入格式為3
對於樣例,
操作3,|1-2|+|1-3|+|2-3|=4
操作1 4之後,集合中的數字為1 2 3 4
操作3,|1-2|+|1-3|+|2-3|+|1-4|+|2-4|+|3-4|=10
操作2 2之後,集合中的數字為1 3 4
操作3,|1-3|+|1-4|+|3-4|=6
input
第一行輸入兩個整數n,q表示集合中初始元素個數和操作次數。(1<=n,q<=100,000)output第二行給出n個整數a[0],a[1],a[2],…,a[n-1],表示初始集合中的元素。(0<=a[i]<=1,000,000,000)
接下來q行,每行乙個操作。(0<=v<=1,000,000,000)
對於第2類操作,如果集合中不存在值為v的元素可供刪除,輸出-1。input示例對於第3類操作,輸出答案。
3 5output示例1 2 3
31 4
32 2
3
4106思路:離散化+數狀陣列;
維護兩個樹狀陣列,乙個為區間的和,另乙個為區間個數,然後離線查詢。插入和刪除乙個數字的時候要統計一下這個對答案的影響。當前數字為x,比當前數字小的有cnt個,總和為sum,那麼這一部分對答案的影響是x*cnt-sum.對於求比當前數字大的數字類似的道理。
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9
using
namespace
std;
10 typedef long
long
ll;11 ll num[100005
];12 typedef struct
node
13 ss;
18 typedef struct
pp19
ap;23 ss ask[100005
];24 mapint>my;
25 ll ac[400000
];26
int id[100005
];27 ll bit_ans[200005
];28 ll bit_sum[200005
];29 ll sum1(int
i);30
void add1(int i,ll x,int
n);31 ll sum2(int
i);32
void add2(int i,ll x,int
n);33 ll akk[100005
];34
int main(void)35
48for(i = 1; i <= q; i++)
4957 ask[i].id =i;
58 }//
printf("1\n");
59 sort(num,num+n);
60 sort(ac,ac+cn);
61int acc = 1
;62 ll x = ac[0
];63 my[x] = 1;64
for(i = 1; i < cn; i++)
6572
}73 ll summ = 0;74
for(i = 0; i < n; i ++)
7581 akk[0]=summ;
82for(i = 1; i <= q; i++)
8389
else
9099
}100
else
if(ask[i].op == 1
)101
111else
112116
}117
return0;
118}
119 ll sum1(int
i)120
127return
s;128
}129
void add1(int i,ll x,int
n)130
136}
137 ll sum2(int
i)138
145return
s;146
}147
void add2(int i,ll x,int
n)148
154 }
51nod 1394 差和問題
1394 差和問題 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 有乙個集合s,初始狀態下有n個元素,對他進行如下操作 1 向s裡面新增乙個值為v的元素。輸入格式為1 v 2 向s裡面刪除乙個值為v的元素。輸入格式為2 v 3 詢問s裡面的元素兩兩之差絕對值之和...
1394雙機除錯的問題
我原來用串列埠除錯,速度很慢,現在買了乙個1394卡,結果雙機除錯總是連不上,請各位大俠教教我啊。具體情況是,筆記本原生1394,4針小口,台式電腦買了乙個via 1394 pci e卡插上,可以正確識別。台式電腦是大口6針1394介面,用4轉6的線盒筆記本連線。xp下面,系統自動安裝1394 網絡...
UVa 1394 約瑟夫問題的變形
本來是要昨天來寫這學習 的,然後昨晚寢室又斷電了,忍不住在這裡吐槽一下,嗯,寢室天天斷電。題意就是輸入n,k,m三個數,n個數排成乙個圈,第一次刪除m,以後每數k個數刪除一次,求最後乙個被刪除的數。言歸正傳,以前寫過乙個鍊錶的約瑟夫問題,但是在這裡肯定是會超時的。後來看了些參考,終於明白了怎麼做。把...