日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

HDU 4883 Best Coder Round 2 TIANKENG’s restaurant 解读

發(fā)布時(shí)間:2025/3/14 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 4883 Best Coder Round 2 TIANKENG’s restaurant 解读 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有一組數(shù)據(jù)是在客人到達(dá)和出發(fā)時(shí)間,問:多少把椅子的能力,以滿足所有客人的需求,可以有一個(gè)地方坐下要求。

有些人甚至開始考慮暴力法,這些數(shù)據(jù)是少,其實(shí)這個(gè)問題很多數(shù)據(jù), 暴力需求O(n*n)的時(shí)間效率,顯然,將加班,因此,有必要O(n) 或O(nlgn)算法。

屬于一道想透了就很easy的,可是沒想過就會(huì)很困難的題目。


解法是:

把全部客人到來和離開的時(shí)間都排成序列。每次客人到來須要n張桌椅,那么就+上n,每次客人離開就會(huì)返還n張桌椅,那么就-去n,求這種最大值。

詳細(xì)算法代碼就那么幾行,處理IO的代碼都比這個(gè)長(zhǎng)。

要想出來還真是十分困難。只是也算是經(jīng)典算法了,應(yīng)該學(xué)熟練。


const int MAX_N = 10001; struct Interval {int t, wei;bool operator<(Interval const &i) const{if (t == i.t) return wei < i.wei;return t < i.t;} };Interval inter[MAX_N<<1];inline int timeToSec(int h, int m) {return h * 60 + m; }int main() {int T, n, h, m, w, num;scanf("%d", &T);while (T--){scanf("%d", &n);num = 0;for (int i = 0; i < n; i++){scanf("%d %d:%d", &w, &h, &m);inter[num].t = timeToSec(h, m);inter[num++].wei = w;scanf("%d:%d", &h, &m);inter[num].t = timeToSec(h, m);inter[num++].wei = -w;}sort(inter, inter+num);int ans = 0, tmp = 0;for (int i = 0; i < num; i++){tmp += inter[i].wei;ans = max(tmp, ans);}printf("%d\n", ans);}return 0; }


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

總結(jié)

以上是生活随笔為你收集整理的HDU 4883 Best Coder Round 2 TIANKENG’s restaurant 解读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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