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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ1227 [SDOI2009]虔诚的墓主人 【树状数组】

發布時間:2025/4/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ1227 [SDOI2009]虔诚的墓主人 【树状数组】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

小W 是一片新造公墓的管理人。公墓可以看成一塊N×M 的矩形,矩形的每個格點,要么種著一棵常青樹,要么是一塊還沒有歸屬的墓地。當地的居民都是非常虔誠的基督徒,他們愿意提前為自己找一塊合適墓地。為了體現自己對主的真誠,他們希望自己的墓地擁有著較高的虔誠度。一塊墓地的虔誠度是指以這塊墓地為中心的十字架的數目。一個十字架可以看成中間是墓地,墓地的正上、正下、正左、正右都有恰好k 棵常青樹。小W 希望知道他所管理的這片公墓中所有墓地的虔誠度總和是多少

輸入格式

第一行包含兩個用空格分隔的正整數N 和M,表示公墓的寬和長,因此這個矩形公墓共有(N+1) ×(M+1)個格點,左下角的坐標為(0, 0),右上角的坐標為(N, M)。第二行包含一個正整數W,表示公墓中常青樹的個數。第三行起共W 行,每行包含兩個用空格分隔的非負整數xi和yi,表示一棵常青樹的坐標。輸入保證沒有兩棵常青樹擁有相同的坐標。最后一行包含一個正整數k,意義如題目所示。

輸出格式

包含一個非負整數,表示這片公墓中所有墓地的虔誠度總和。為了方便起見,答案對2,147,483,648 取模。

輸入樣例

5 6

13

0 2

0 3

1 2

1 3

2 0

2 1

2 4

2 5

2 6

3 2

3 3

4 3

5 2

2

輸出樣例

6

提示

圖中,以墓地(2, 2)和(2, 3)為中心的十字架各有3個,即它們的虔誠度均為3。其他墓地的虔誠度為0。

所有數據滿足1 ≤ N, M ≤ 1,000,000,000,0 ≤ xi ≤ N,0 ≤ yi ≤ M,1 ≤ W ≤ 100,000, 1 ≤ k ≤ 10。存在50%的數據,滿足1 ≤ k ≤ 2。存在25%的數據,滿足1 ≤ W ≤ 10000。

注意:”恰好有k顆樹“,這里的恰好不是有且只有,而是從>=k的樹中恰好選k棵

題解

題目中的模數等于\(2^31\),所以int自然溢出就相當于取模
我們記一個點上下左右的樹數量為u、d、l、r,則每個點的貢獻是\(C_{u}^{k} * C_ozvdkddzhkzd^{k} * C_{l}^{k} * C_{r}^{k}\)
點的范圍很大,我們將其離散化到100000以內
但總共\(W^2\)個點,不能直接算,但樹只有\(W\)個,考慮從樹出發
我們將所有樹排序后,對于橫坐標相同的兩棵樹之間的點,其式子中的\(C_{u}^{k} * C_ozvdkddzhkzd^{k}\)是一樣的
我們用樹狀數組維護\(C_{l}^{k} * C_{r}^{k}\),就可以加速運算了

#include<iostream> #include<cstdio> #include<algorithm> #define lbt(x) (x & -x) using namespace std; const int maxn = 100005,maxm = 100005,INF = 1000000000; inline int read(){int out = 0,flag = 1; char c = getchar();while (c < 48 || c > 57) {if (c == '-') flag = -1; c = getchar();}while (c >= 48 && c <= 57) {out = (out << 3) + (out << 1) + c - '0'; c = getchar();}return out * flag; } int s[maxn],C[maxn][11],b[maxn],tot,n,k; int U[maxn],D[maxn],L[maxn],R[maxn],V[maxn]; struct point{int x,y;}p[maxn]; int getn(int x){return lower_bound(b + 1,b + 1 + tot,x) - b;} inline bool operator <(const point& a,const point& b){return a.x == b.x ? a.y < b.y : a.x < b.x; } void add(int u,int v){while (u <= tot) s[u] += v,u += lbt(u);} void mus(int u,int v){while (u <= tot) s[u] -= v,u += lbt(u);} int query(int u){int ans = 0; while (u) ans += s[u],u -= lbt(u); return ans;} int sum(int l,int r){return query(r) - query(l - 1);} void cal(){for (int i = 0; i <= n; i++){C[i][0] = C[i][i] = 1;for (int j = 1; j <= i && j <= 10; j++)C[i][j] = C[i - 1][j] + C[i - 1][j - 1];} } void init(){read(); read();n = read();cal();for (int i = 1; i <= n; i++)b[i] = p[i].x = read(),p[i].y = read();sort(b + 1,b + 1 + n); tot = 1;for (int i = 2; i <= n; i++) if (b[i] != b[tot]) b[++tot] = b[i];for (int i = 1; i <= n; i++) p[i].x = getn(p[i].x);for (int i = 1; i <= n; i++) b[i] = p[i].y;sort(b + 1,b + 1 + n); tot = 1;for (int i = 2; i <= n; i++) if (b[i] != b[tot]) b[++tot] = b[i];for (int i = 1; i <= n; i++) p[i].y = getn(p[i].y);k = read(); } void solve(){sort(p + 1,p + 1 + n);int ans = 0;for (int i = 1; i <= n; i++) U[p[i].x]++,R[p[i].y]++;for (int i = 1; i <= n; i++){if (i > 1 && p[i - 1].x == p[i].x && p[i - 1].y + 1 < p[i].y)ans += C[U[p[i].x]][k] * C[D[p[i].x]][k] * sum(p[i - 1].y + 1,p[i].y - 1);U[p[i].x]--; D[p[i].x]++;R[p[i].y]--; L[p[i].y]++;add(p[i].y,-V[p[i].y]);add(p[i].y,V[p[i].y] = C[L[p[i].y]][k] * C[R[p[i].y]][k]);}cout << (ans >= 0 ? ans : ans + 2147483647 + 1) << endl; } int main(){init();solve();return 0; }

轉載于:https://www.cnblogs.com/Mychael/p/8478222.html

總結

以上是生活随笔為你收集整理的BZOJ1227 [SDOI2009]虔诚的墓主人 【树状数组】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费在线一区二区 | 成人区人妻精品一区二区不卡视频 | 日批在线视频 | 欧美精品一二区 | 香蕉在线观看视频 | av日日夜夜 | 日韩一级在线观看视频 | 国产在线一区二 | 国产熟女一区二区丰满 | 国产在线一 | jizz中国女人 | 在线一区二区三区四区 | 香蕉污视频在线观看 | 成人动漫一区二区三区 | 亚洲免费高清视频 | 精品国产乱码久久久久久图片 | 中文字幕日本一区 | 国产又粗又长又黄的视频 | av不卡在线免费观看 | 亚洲成人免费在线 | 欧美一区二区三区不卡视频 | 制服丝袜亚洲 | 欧美日韩黄色一区二区 | 91天天 | 黄色长视频 | 久久伊人色 | 精品亚洲一区二区 | 久久成人免费视频 | 中文字幕一区三区 | 欧美一区免费观看 | 欧美videos另类精品 | 自拍偷拍21p | 别揉我奶头啊嗯一区二区 | 日韩中文字幕一区 | 丁香激情网 | 成人在线视屏 | 亚洲国产毛片 | 婷婷久久伊人 | 成人区人妻精品一区二区网站 | 久久久亚洲成人 | 男生女生插插插 | 色综合久久久无码中文字幕波多 | 欧美日韩在线播放视频 | 综合av| 91在线观看视频网站 | 人人妻人人爽欧美成人一区 | 麻豆视屏 | 成人手机在线视频 | 日本少妇激情 | 中文字幕亚洲激情 | 欧美日本 | 动漫美女舌吻 | 九色视频网 | 熟妇人妻精品一区二区三区视频 | 大陆农村乡下av | 中文字幕一区二区av | 炕上如狼似虎的呻吟声 | 国产又粗又大又硬 | 色丁香婷婷综合久久 | 精品久久久久久久免费人妻 | jvid视频| xxxx日本黄色 | 91爱爱视频 | 日韩成人av网站 | 亚洲超丰满肉感bbw 悠悠av | 久久性感美女视频 | 德国性猛交xxxxhd| 综合久久综合 | 亚洲精品久久久久久久久久吃药 | 国产精品久久久久免费 | a中文字幕 | 毛片网在线| 三点尽露的大尺度国产 | av地址在线 | 欧美日韩黄色一级片 | 少妇的激情 | 国产一区h | 欧美交受高潮1 | 毛片网站在线观看 | 成人黄色性视频 | 久久精品99国产 | 91精品国产99| 亚洲国产视频网站 | 国产999精品久久久久久 | 青青草国产成人99久久 | 8ppav| av免 | 欧美成人精品欧美一级 | 四虎免费看黄 | 日韩福利视频网 | 亚洲天堂麻豆 | 高清一区二区在线 | 黄色三级小视频 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 日韩一区在线免费观看 | 偷看洗澡一二三区美女 | 国产精品一区二区视频 | 色窝网| 一级黄色小视频 |