日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ-3110-K大数查询-ZJOI2013-暴力

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ-3110-K大数查询-ZJOI2013-暴力 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

描述

有N個(gè)位置,M個(gè)操作。操作有兩種,每次操作如果是1 a b c的形式表示在第a個(gè)位置到第b個(gè)位置,每個(gè)位置加入一個(gè)數(shù)c
如果是2 a b c形式,表示詢問從第a個(gè)位置到第b個(gè)位置,第C大的數(shù)是多少。


分析

  • 暴力的做法, 正解是?樹套樹或者zkw線段樹 我現(xiàn)在只想說是整體二分...
  • 讀入所有的命令, 把所有的插入命令收集起來處理, 按照插入的數(shù)值的大小從大到小 (相等時(shí)按先后順序) 排序.
  • 按照先后順序遍歷命令. 如果是插入命令, 標(biāo)記該插入已經(jīng)生效; 否則如果是查詢命令, 從前到后遍歷插入命令, 如果當(dāng)前的插入命令已經(jīng)生效, 則更改查詢的排名, 具體怎么更改就是減去重合區(qū)間長(zhǎng)度
  • 如果更改后排名小于等于0, 第C大就是當(dāng)前的插入操作所插入的值.
  • 既然暴力可以, 就不用寫二維線段樹了. 比賽時(shí)善于利用STL來暴力是個(gè)很好的辦法.
  • 但是暴力也有技巧

代碼

#include #include #include using namespace std; const int maxn = 50000 + 10;struct opt {int i, k, a, b, c;bool operator < (const opt& rhs) const {if(c == rhs.c) return i < rhs.i;return c > rhs.c;} }A[maxn];vectorT; int ID[maxn]; bool ins[maxn];int main() {int n, m;scanf("%d %d", &n, &m);for(int i = 1; i <= m; i++) {int k, a, b, c;scanf("%d %d %d %d", &k, &a, &b, &c);A[i] = (opt){i, k, a, b, c};if(k == 1) T.push_back(A[i]);}sort(T.begin(), T.end());for(int i = 0; i < T.size(); i++) ID[T[i].i] = i;for(int i = 1; i <= m; i++)if(A[i].k == 1) ins[ID[i]] = 1;else {int j, c = 0;for(j = 0; j < T.size(); j++) if(ins[j]) {int len = min(A[i].b, T[j].b) - max(A[i].a, T[j].a) + 1;if(len <= 0) continue;if((c += len) >= A[i].c) break;}printf("%d\n", T[j].c);}return 0; } [1, 2] insert 1 [1, 2] insert 2 [1, 1] query 2nd [1, 1] query 1st [1, 1] query 3rdArray ins 1. [1, 2] insert 2 2. [1, 2] insert 1in order: [1, 2] insert 1 ==> 2 : new id ==> used[2] = 1 [1, 2] insert 2 ==> 1 : new id ==> used[1] = 1 [1, 1] query 2nd ==>k = 0for all i in insif(used[ins[i]]) k += bin = length of intervalif k >= c ==> ans


總結(jié)

以上是生活随笔為你收集整理的BZOJ-3110-K大数查询-ZJOI2013-暴力的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。