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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

巧克力王国 BZOJ 2850

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

巧克力王國(guó)

【問(wèn)題描述】

巧克力王國(guó)里的巧克力都是由牛奶和可可做成的。但是并不是每一塊巧克力都受王國(guó)人民的歡迎,因?yàn)榇蠹叶疾幌矚g過(guò)于甜的巧克力。對(duì)于每一塊巧克力,我們?cè)O(shè)x和y為其牛奶和可可的含量。由于每個(gè)人對(duì)于甜的程度都有自己的評(píng)判標(biāo)準(zhǔn),所以每個(gè)人都有兩個(gè)參數(shù)a和b,分別為他自己為牛奶和可可定義的權(quán)重,因此牛奶和可可含量分別為x和y的巧克力對(duì)于他的甜味程度即為ax + by。而每個(gè)人又有一個(gè)甜味限度c,所有甜味程度大于等于c的巧克力他都無(wú)法接受。每塊巧克力都有一個(gè)美味值h。現(xiàn)在我們想知道對(duì)于每個(gè)人,他所能接受的巧克力的美味值之和為多少

【輸入格式】

第一行兩個(gè)正整數(shù)n和m,分別表示巧克力個(gè)數(shù)和詢問(wèn)個(gè)數(shù)。接下來(lái)n行,每行三個(gè)整數(shù)x,y,h,含義如題目所示。再接下來(lái)m行,每行三個(gè)整數(shù)a,b,c,含義如題目所示。

【輸出格式】

輸出m行,其中第i行表示第i個(gè)人所能接受的巧克力的美味值之和。

【樣例輸入】

3 3
1 2 5
3 1 4
2 2 1
2 1 6
1 3 5
1 3 7

【樣例輸出】

5
0
4

【數(shù)據(jù)范圍】

1 <= n, m <= 50000,-10^9 <= a, b, x, y <= 10^9。


題解:

考慮 ax + by - c 其實(shí)是平面上的一條直線,x、y就是點(diǎn)的橫坐標(biāo)和縱坐標(biāo)

要求 ax + by < c ,就是要求點(diǎn)在 ax + by - c 的下方

那么就用KD樹(shù)就好了

程序中用了一個(gè) nth_element(a + l, a + m, a + r + 1, cmp) 函數(shù)

就是按cmp定義的大小規(guī)則,將a數(shù)組中l(wèi)到r中第m大的數(shù)放在第m位,比這個(gè)數(shù)小的數(shù)在第m位前,其他在第m位后(亂序)

1 #include<algorithm> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdlib> 5 #include<cstdio> 6 #include<cmath> 7 #define lc(i) tr[i].l 8 #define rc(i) tr[i].r 9 #define mi_x(i) tr[i].mi_x 10 #define ma_x(i) tr[i].ma_x 11 #define mi_y(i) tr[i].mi_y 12 #define ma_y(i) tr[i].ma_y 13 #define sum(i) tr[i].sum 14 typedef long long lol; 15 using namespace std; 16 inline lol Get() 17 { 18 lol x; 19 lol o = 1; 20 char c; 21 while((c = getchar()) < '0' || c > '9') 22 if(c == '-') 23 o = -1; 24 x = c - '0'; 25 while((c = getchar()) >= '0' && c <= '9') x = x * 10 + c - '0'; 26 return x * o; 27 } 28 const int me = 1000233; 29 const lol inf = 214748364721474836; 30 struct dot 31 { 32 int l, r; 33 lol x, y, z, sum, mi_x, mi_y, ma_x, ma_y; 34 dot() 35 { 36 mi_x = mi_y = inf; 37 ma_x = ma_y = -inf; 38 } 39 }; 40 dot a[me], tr[me]; 41 lol x, y, z; 42 int n, m; 43 int flag; 44 lol ans; 45 inline bool operator < (const dot &a, const dot &b) 46 { 47 if(!flag) return a.x < b.x; 48 return a.y < b.y; 49 } 50 inline void Update(const int &x) 51 { 52 int l = lc(x), r = rc(x); 53 mi_x(x) = min(tr[x].x, min(mi_x(l), mi_x(r))); 54 ma_x(x) = max(tr[x].x, max(ma_x(l), ma_x(r))); 55 mi_y(x) = min(tr[x].y, min(mi_y(l), mi_y(r))); 56 ma_y(x) = max(tr[x].y, max(ma_y(l), ma_y(r))); 57 sum(x) = sum(l) + sum(r) + tr[x].z; 58 } 59 int Build(const int &l, const int &r, const int &e) 60 { 61 int mi = l + r >> 1; 62 flag = e; 63 nth_element(a + l, a + mi, a + r + 1); 64 tr[mi] = a[mi]; 65 if(l < mi) lc(mi) = Build(l, mi - 1, e ^ 1); 66 if(r > mi) rc(mi) = Build(mi + 1, r, e ^ 1); 67 Update(mi); 68 return mi; 69 } 70 inline int Check(const int &wx, const int &wy) 71 { 72 return (lol) wx * x + wy * y < z; 73 } 74 inline int Pos(const int &w) 75 { 76 if(!w) return 0; 77 return Check(mi_x(w), mi_y(w)) + Check(mi_x(w), ma_y(w)) + Check(ma_x(w), mi_y(w)) + Check(ma_x(w), ma_y(w)); 78 } 79 void Ask(const int &w) 80 { 81 int l = lc(w), r = rc(w); 82 if(Check(tr[w].x, tr[w].y)) ans += tr[w].z; 83 int le = Pos(l); 84 if(le) 85 if(le == 4) ans += sum(l); 86 else Ask(l); 87 int ri = Pos(rc(w)); 88 if(ri) 89 if(ri == 4) ans += sum(r); 90 else Ask(r); 91 } 92 int main() 93 { 94 n = Get(), m = Get(); 95 for(int i = 1; i <= n; ++i) 96 a[i].x = Get(), a[i].y = Get(), a[i].z = Get(); 97 Build(1, n, 0); 98 for(int i = 1; i <= m; ++i) 99 { 100 x = Get(), y = Get(), z = Get(); 101 ans = 0; 102 Ask(1 + n >> 1); 103 printf("%lld\n", ans); 104 } 105 }

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

總結(jié)

以上是生活随笔為你收集整理的巧克力王国 BZOJ 2850的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 一级v片| 女人性做爰69片免费看 | 亚洲视屏一区 | 五月精品 | 精品黑人一区二区三区在线观看 | 国产十八熟妇av成人一区 | 国精品人妻无码一区二区三区喝尿 | 欧美第二区 | 国产毛片毛片毛片毛片毛片毛片 | 日日骚av一区二区 | 91国内产香蕉 | 亚洲天堂中文字幕 | 午夜精品av | 黄色片免费网站 | 亚色视频| 毛片基地在线播放 | 成人国产精品免费观看 | 国产区91| 日本精品视频一区 | 欧美午夜精品久久久久免费视 | 免费观看亚洲 | 成人黄色片免费看 | 欧美高清一区二区三区四区 | 国产高清一区二区三区 | 精品久久久久久无码人妻 | 天堂国产一区二区三区 | 亚洲精品一区二区三区在线观看 | 日韩精品中文字幕一区二区 | www.chengren| 强开乳罩摸双乳吃奶羞羞www | 一区二区三区高清 | 都市激情自拍 | 巨乳中文字幕 | 激情黄色小说视频 | 日韩亚洲欧美一区二区 | 熟妇高潮一区二区 | 男女毛片视频 | 日本公与丰满熄 | 捆绑少妇玩各种sm调教 | 亚洲码视频 | 在线免费小电影 | 日本国产一区二区 | www国产精品内射熟女 | 久久在线精品视频 | 亚洲国产精彩视频 | 一级看片 | 黑人极品ⅴideos精品欧美棵 | 久草免费在线观看视频 | 亚洲第一二三区 | 一区二区色 | 91观看视频 | 小俊大肉大捧一进一出好爽 | 黑丝袜av | 高清视频免费在线观看 | 中文字幕av在线免费 | 成年人的视频网站 | 欧美另类tv| 高清一级片 | 无码日本精品xxxxxxxxx | 久久艹伊人| 青青草免费观看视频 | 欧美在线小视频 | 蜜桃视频在线观看网站 | av网站网址 | 中文字幕专区 | 在线观看免费 | 欧美日韩久久精品 | 日韩一区二区三区在线免费观看 | 又黄又骚的视频 | 夜夜操av | 好吊操这里只有精品 | www.com黄色片| 免费久久网站 | 国产夫妻自拍av | 日本一区二区成人 | 天天想你在线观看完整版电影免费 | 欧洲最强rapper网站直播 | 黄页网址大全免费观看 | 香蕉在线视频观看 | 日本美女一区二区 | 日本一区成人 | 嫩草社区 | 国产视频亚洲 | www.555国产精品免费 | 国产午夜精品一区二区三区嫩草 | 亚洲女同志亚洲女同女播放 | 久久丁香 | 欧美精品一级在线观看 | 少妇久久久| 国产自在线 | 欧美黑人性xxx猛交 少妇无套内谢久久久久 | 欧美精品一区二区视频 | 91精品久久久久久久久中文字幕 | 中文字幕日韩无 | 91精品视频在线 | 国内精品视频一区二区三区 | 国产网红无码精品视频 | 日韩专区第一页 | 久久久在线视频 |