小鯊魚在51nod小學

2021-08-14 11:07:17 字數 1748 閱讀 1382

鯊魚巨巨2.0(以下簡稱小鯊魚)以優異的成績考入了51nod小學。並依靠演算法方面的特長,在班裡擔任了許多職務。

每乙個職務都有乙個起始時間a和結束時間b,意為小鯊魚在[a, b]時間內,擔任了某職務(inclusively)。

現在給定小鯊魚的職務履歷表,你可以高效的給出小鯊魚在某天擔任了哪些職務嗎?

p.s. 由於小鯊魚擔任的職務太多,所有任期小於乙個自然月的職務都忽略不計。(如1月1日~2月1日為乙個自然月,即月份加1)

p.p.s. 輸入資料保證小鯊魚同時不擔任超過200種職務。(牛!)

p.p.p.s 輸入的日期均為合法日期,範圍在2023年01月01日~2023年12月31日。

p.p.p.p.s巨大的輸入輸出,推薦使用scanf/printf,編譯器推薦使用virtual c++

input

第一行為乙個整數n,代表小鯊魚擔任過n種職務。(1 <= n <= 10^5)

接下來的n行,每一行為七個整數,y0, m0, d0, y1, m1, d1, x。意為在到時間內,小鯊魚擔任了職務x。(1 <= x <= 10^9)

給定的時間皆合法,且起始日期小於或等於截止日期。職務x是唯一的。

接下來是乙個整數q,代表q次查詢。(1 <= q <= 10^4)

接下來的q行,每一行為三個整數,代表查詢的日期。時間皆合法。

output

每一次查詢輸出一行結果。

首先輸出乙個整數n,代表此時小鯊魚擔任的職務數。(n可以為0)

接下來是n個整數,代表小鯊魚擔任的職務。職務列表保持公升序。

input示例

4

2000 01 01    2000 01 01    111

2000 01 02    2001 02 02    222

2000 01 28    2000 02 29    333

2000 01 29    2000 02 28    444

42000 01 01

2000 01 02

2000 01 28

2000 02 29

output示例

0

1 222

2 222 333

2 222 333#include #include #include #include #include using namespace std;

struct job

};int n;

int y0, m0, d0, y1, m1, d1, x;

int q;

int y, m, d;

vectorjobs;

bool jobcmp(const job &a, const job &b)

int main()

else

}} sort(jobs.begin(), jobs.end(), jobcmp);

scanf("%d", &q);

for (int i = 0; i < q; i++)

if (date >= jobs[j].start && date <= jobs[j].end)

}sort(buf.begin(), buf.end());

printf("%d", buf.size());

for (int k = 0; k < buf.size(); k++)

printf("\n");

} return 0;

}

nod 1631 小鯊魚在51nod小學

鯊魚巨巨2.0 以下簡稱小鯊魚 以優異的成績考入了51nod小學。並依靠演算法方面的特長,在班裡擔任了許多職務。每乙個職務都有乙個起始時間a和結束時間b,意為小鯊魚在 a,b 時間內,擔任了某職務 inclusively 現在給定小鯊魚的職務履歷表,你可以高效的給出小鯊魚在某天擔任了哪些職務嗎?p....

51nod 貪心入門

有若干個活動,第i個開始時間和結束時間是 si,fi 活動之間不能交疊,要把活動都安排完,至少需要幾個教室?分析 能否按照之一問題的解法,每個教室安排盡可能多的活動,即按結束時間排序,再貪心選擇不衝突的活動,安排乙個教室之後,剩餘的活動再分配乙個教室,繼續貪心選擇 反例 a 1,2 b 1,4 c ...

51nod 迷宮問題

1459 迷宮遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 你來到乙個迷宮前。該迷宮由若干個房間組成,每個房間都有乙個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路鏈結這些房間,你沿著這些道路從乙個房間走到另外乙個房間需要一些時間。遊戲規定了你的...