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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

poj_3067 树状数组

發(fā)布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj_3067 树状数组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目大意

????左右兩個豎排,左邊豎排有N個點,從上到下依次標(biāo)記為1,2,...N; 右邊豎排有M個點,從上到下依次標(biāo)記為1,2....M。現(xiàn)在從K條直線分別連接左邊一個點和右邊一個點,求這K條直線的交點個數(shù)(左右豎排上的點不算做交點)。?
????給出N,M,K,以及K條線的起點和終點。

題目分析

????求兩兩交點的問題最好固定順序,如i和i之前的交點,這樣便于統(tǒng)計而不重復(fù)不遺漏。在將K條線按照左邊點從小到大的順序進行排序,左邊點相同按照右邊點從小到大排序之后,按照順序分析當(dāng)前線和它之前的線的交點個數(shù):?
????當(dāng)前線k的左邊點序號為 xa, 右邊點序號為 ya, 則對于當(dāng)前線k之前的那些線1--k-1,他們左邊點的序號肯定小于等于xa, 這些線(1--k-1)中右邊點序號大于 ya的那些線會和當(dāng)前線k有一個交點。因此對于當(dāng)前線k,統(tǒng)計之前1---k-1線的右邊點在 [ya + 1--M]中的個數(shù),形成了一個區(qū)間統(tǒng)計問題。?
????考慮右邊點1,2....M 各對應(yīng)一個統(tǒng)計變量 count[i], 每次分析線k,都將線k的右邊點ya 對應(yīng)的count[ya] ++。 這樣,每次都統(tǒng)計 [t, M]區(qū)間內(nèi) count[i]的和。 使用樹狀數(shù)組來實現(xiàn)。

實現(xiàn)(c++)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<string.h>
using namespace std;
#define MAX_CITY_NUM 1002struct Highway{int east_city;int west_city;Highway(int e, int w):east_city(e), west_city(w){}
};
vector<Highway> gHws;
int gC[MAX_CITY_NUM];
int gLowbit[MAX_CITY_NUM];bool Cmp(const Highway& h1, const Highway& h2){if (h1.east_city == h2.east_city)return h1.west_city < h2.west_city;return h1.east_city < h2.east_city;
}void InitLowbit(int n){for (int i = 1; i <= n; i++){gLowbit[i] = i&(-i);}
}
void InitSequence(int n){memset(gC, 0, sizeof(gC));
}void Update(int k, int n, int add){while (k <= n){gC[k] += add;k += gLowbit[k];}
}int Query(int k){int result = 0;while (k > 0){result += gC[k];k -= gLowbit[k];}return result;
}int main(){int cas, N, M, K, e_city, w_city;scanf("%d", &cas);InitLowbit(1001);for (int c = 1; c <= cas; c++){scanf("%d %d %d", &N, &M, &K);gHws.clear();InitSequence(M);for (int i = 1; i <= K; i++){scanf("%d %d", &e_city, &w_city);gHws.push_back(Highway(e_city, w_city));}sort(gHws.begin(), gHws.end(), Cmp);long long int crossing = 0;for (int i = 0; i < K; i++){crossing += (Query(M) - Query(gHws[i].west_city));Update(gHws[i].west_city, M, 1);}printf("Test case %d: %lld\n", c, crossing);}return 0;
}

?

轉(zhuǎn)載于:https://www.cnblogs.com/gtarcoder/p/4794694.html

總結(jié)

以上是生活随笔為你收集整理的poj_3067 树状数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: jlzzjlzz亚洲日本少妇 | 青草视屏 | 国产中文字幕视频 | 深夜福利网站 | 欧美色影院 | 蜜桃成熟时李丽珍在线观看 | 日本一区二区欧美 | 视频在线观看电影完整版高清免费 | 91丨porny丨国产入口 | 中文字幕在线播放第一页 | 能看的av网站| 奇米狠狠 | 一级特黄a大片免费 | 国产a级片视频 | 操操日| 一区二区日韩视频 | 欧美激情亚洲色图 | 一区二区三区久久 | 人人澡人人插 | 粉嫩av懂色av蜜臀av分享 | 狠狠干伊人网 | 国产国产乱老熟女视频网站97 | 日韩特黄一级片 | 欧美一区二 | h狠狠躁死你h高h | 久久国产福利 | 极品蜜桃臀肥臀-x88av | 亚洲美女一区 | 国产一区二区三区久久久 | 综合色99| 免费日b视频| 久久精品亚洲天堂 | 国产一区二区色 | 成人午夜又粗又硬又大 | 在线观看一区二区三区四区 | 国产亚洲成av人在线观看导航 | 中文字幕免费在线观看 | 寡妇激情做爰呻吟 | 香蕉国产 | 欧美特一级 | www.在线观看视频 | 亚洲高清在线看 | 久久99免费视频 | 国产国语老龄妇女a片 | 超碰在线免费 | 国产精品二区三区 | 国产视频播放 | 深夜免费福利 | 国产精品4区 | 一卡二卡在线观看 | 精品国产亚洲一区二区麻豆 | 影音先锋二区 | 国产在线视频你懂得 | 精品人妻一区二区三区日产乱码 | 一卡二卡三卡在线视频 | av天堂一区二区 | 精品一级少妇久久久久久久 | 国产青青视频 | 欧美国产日韩在线视频 | 久久成年人视频 | 7m精品福利视频导航 | 久久免费国产 | 亚洲青青草 | 青青伊人网| 激情综合五月天 | 性欧美在线 | 日本乱子伦xxxx | 国产日韩一区二区三免费高清 | 91亚洲精品国偷拍自产在线观看 | 精品久久免费 | 九九九九久久久久 | 亚洲AV无码成人精品一区 | 亚洲AV无码国产精品 | 亚洲激情六月 | 日韩视频中文字幕 | 红桃成人在线 | 日本视频在线免费观看 | 91精品国产一区二区 | 成年人黄色大全 | 国产精品大屁股白浆一区 | 成人激情电影在线观看 | 美女露出让男生揉的视频 | 天天色官网 | 亚日韩 | 欧美三级一区二区三区 | 91香蕉视频官网 | 日韩欧美麻豆 | 麻豆影视在线播放 | 米奇影音 | 国产精品原创 | 日本人性爱视频 | 欧美性猛交7777777 | 天天舔天天干 | 中文字幕一区二区人妻在线不卡 | 久久久久国产一区 | 精品国内自产拍在线观看视频 | 狠狠干婷婷 | 国内精久久久久久久久久人 | 亚洲小说区图片区 |