【NOIP2016】海港
題目描述
小K是一個海港的海關工作人員,每天都有許多船隻到達海港,船上通常有很多來自不同國家的乘客。
小K對這些到達海港的船隻非常感興趣,他按照時間記錄下了到達海港的每一艘船隻情況;對於第i艘到達的船,他記錄了這艘船到達的時間ti (單位:秒),船上的乘 客數星ki,以及每名乘客的國籍 x(i,1), x(i,2),…,x(i,k);。
小K統計了n艘船的資訊,希望你幫忙計算出以每一艘船到達時間為止的24小時(24小時=86400秒)內所有乘船到達的乘客來自多少個不同的國家。
形式化地講,你需要計算n條資訊。對於輸出的第i條資訊,你需要統計滿足 ti - 86400 < tp <= ti的船隻p,在所有的x(p,j)中,總共有多少個不同的數。
樣例2 輸入: 4 1 4 1 2 2 3 3 2 2 3 86401 2 3 4 86402 1 5
樣例2 輸出: 3 3 3 4
【樣例一說明】
第一艘船在第1秒到達海港,最近24小時到達的船是第一艘船,共有4個乘客,分別是來自國家4,1,2,2,共來自3個不同的國家;
第二艘船在第2秒到達海港,最近24小時到達的船是第一艘船和第二艘船,共有 4+2=6個乘客,分別是來自國家4,1,2,2,2,3,共來自4個不同的國家;
第三艘船在第10秒到達海港,最近24小時到達的船是第一艘船、第二艘船和第三艘船,共有4+2+1=7個乘客,分別是來自國家4,1,2,2,2,3,3,共來自4個不同的國家。
【樣例二說明】
第一艘船在第1秒到達海港,最近24小時到達的船是第一艘船,共有4個乘客,分別是來自國家1,2,2,3,共來自3個不同的國家。
第二艘船在第3秒到達海港,最近24小時到達的船是第一艘船和第二艘船,共有4+2=6個乘客,分別是來自國家1,2,2,3,2,3,共來自3個不同的國家。
第三艘船在第86401秒到達海港,最近24小時到達的船是第二艘船和第三艘船,共有2+2=4個乘客,分別是來自國家2,3,3,4,共來自3個不同的國家。
第四艘船在第86402秒到達海港,最近24小時到達的船是第二艘船、第三艘船和第四艘船,共有2+2+1=5個乘客,分別是來自國家2,3,3,4,5,共來自4個不同的國家。
---------------------------------------------------------------------------
這道題,估計很多童鞋就直接用一個結構體陣列,將每一條進港的船的所有資訊記錄下來。然而,這是要爆記憶體的!
所以,我們得用其它的資料結構,節省空間。
我們在看到題目的資料規模:∑k i ≤ 3 * 10 ^ 5。
於是,整個資料結構就出來了:將每艘船上的人的到達時間和國籍記錄下來,放進一個佇列中。這樣,每當需要重新統計時,就可
以很方便地計數了。
由於總人數不會超過3 * 10 ^ 5,國籍不會超過10 ^ 5種,所以記憶體那裡一切平安!
-----------------------------------------------------------------------------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#include<cstdio>
#include<queue>
using
namespace
std;
int
nation[1000005];
struct
node{
int
s, t;
};
queue<node>ship;
node h;
int
ans;
int
main()
{
int
n, i, t, m, j, p;
scanf
(
"%d"
, &n);
for
(i = 1; i <= n; i++)
{
scanf
(
"%d%d"
, &t, &m);
while
(!ship.empty())
{
h = ship.front();
if
(h.t + 86400 <= t)
{
nation[h.s]--;
if
(!nation[h.s])
ans--;
ship.pop();
continue
;
}
break
;
}
for
(j = 1; j <= m; j++)
{
scanf
(
"%d"
, &p);
h.s = p, h.t = t;
ship.push(h);
相關推薦【NOIP2016】海港題目描述 小K是一個海港的海關工作人員,每天都有許多船隻到達海港,船上通常有很多來自不同國家的乘客。 小K對這些到達海港的船隻非常感興趣,他按照時間記錄下了到達海港的每一艘船隻情況;對於第i艘到達的船,他記錄了這艘船到達的時間ti (單位:秒),船上的乘 客數星ki,以及每名乘客的國籍 【NOIP2016】憤怒的小鳥數據 需要 消失 int 指令 我們 所在 clas 小鳥 題目描述 Kiana最近沈迷於一款神奇的遊戲無法自拔。 簡單來說,這款遊戲是在一個平面上進行的。 有一架彈弓位於(0,0)處,每次Kiana可以用它向第一象限發射一只紅色的小鳥,小鳥們的飛行軌跡均為形如的曲線,其中 【NOIP2016】天天愛跑步truct ios 多少 個人 img 自己 ret 一行 速度 題目描述 小c同學認為跑步非常有趣,於是決定制作一款叫做《天天愛跑步》的遊戲。?天天愛跑步?是一個養成類遊戲,需要玩家每天按時上線,完成打卡任務。 這個遊戲的地圖可以看作一一棵包含 個結點和 條邊的樹, 每條 【NOIP2016】蚯蚓(單調隊列)www. 技術 preview view es2017 span res 最長 blog 題意: 思路: 我們發現,對於任意兩次切割i和j,i<j,在進行完第j次切割後,第i次切割的u/v部分一定大於等於第j次切割的u/v部分,第i次的1-u/v部分也一定大於等 【NOIP2016】換教室layer 浮點數 min 答案 pro () 大於 row tin Description 對於剛上大學的牛牛來說,他面臨的第一個問題是如何根據實際情況申請合適的課程。 在可以選擇的課程中,有2n節課程安排在n個時間段上。在第i(1<i<n)個時間段上,兩節內容相同 【NOIP2016】提高組usm 前綴和 sed scanf typedef pac 取余 -s rank Day1 T1玩具謎題 題目鏈接 簡單模擬題,註意一下取余啊方向啊什麽的就行了。 1 #include<cstdio> 2 #include<cstri 【noip2016】【洛谷P2827】蚯蚓初始 開始 code space cout iostream lag == std 這個題只知道可以用優先隊列去做,但是不知道正解想法,看到題解後恍然大悟,詳情請看代碼中間 #include<algorithm> #include<iostream 【NOIP2016】魔法陣ace DC abc algorithm 計算 前綴 -m d+ 左面 【Problem description】 六十年一次的魔法戰爭就要開始了,大魔法師準備從附近的魔法場中汲取魔法能量。 大魔法師有m個魔法物品,編號分別為1,2,...,m。每個物品具有一個魔法值, 【noip2016】玩具謎題max 它的 ios 輸入 pre 字符串 左右 分享 無法 題目描述 小南有一套可愛的玩具小人,它們各有不同的職業。 有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了一個圈,它們有的面朝圈內,有的面朝圈外。如下圖: 這時singer告訴小南一個謎題:“ 【NOIP2016】蚯蚓題面連結 演算法: 我們將蚯蚓長度分成三個陣列儲存,原先就有、切掉後長度為⌊px⌋、 切掉後長度為x −⌊px⌋。 在記錄下每 【NOIP2016】組合數問題本題在洛谷上的連結:https://www.luogu.org/problemnew/show/P2822 就在十一假期某學堂裡有幸聽出題人zhx大神講課。。。 都說是水題,但還是需要技巧滴。首先得知道組合數的那個在楊輝三角里體現得淋漓盡致的性質:c[n][m]=c[n-1][m-1] 【P2822】組合數問題【NOIP2016】題目描述 組合數 Cnm 表示的是從 n 個物品中選出 m 個物品的方案數。舉個例子,從 (1,2,3) 三個物品中選擇兩個物品可以有 (1,2),(1,3),(2,3) 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 Cnm的一般公式: C nm 2018.11.09【NOIP2016】【洛谷P1600】天天愛跑步(樹上差分)傳送門 解析: 據說這是NOIP歷年最難一道題。。但是真的沒有寶藏難啊我覺得。。。 思路: 答案分兩類統計,一種是子樹中過來,一種是其他地方過來。那麼路徑就被拆分成兩部分了,一部分是S−>lcaS->lcaS−>lca,一部分 【BZOJ4719】【NOIP2016】天天愛跑步【題目連結】【思路要點】補檔部落格,無題解。【程式碼】#include<bits/stdc++.h> using namespace std; #define MAXN 300005 #define MAXV 600005 #define MAXLOG 20 te 【NOIP2016】魔法陣(節選自冬雪_狂舞_桀驁-xmy的部落格)現在來找找AC方式,首先,剖析題目,列出條件:Xa<Xb<Xc<Xd,Xb-Xa=2(Xd-Xc),Xb-Xa<Xc-Xb/3 遇到這種有條件的題,通常把圖形畫出來比較直觀。 【NOIP2016】迴文日期題目描述 在日常生活中,通過年、月、日這三個要素可以表示出一個唯一確定的日期。牛牛習慣用8位數字表示一個日期,其中,前4位代表年份,接下來2位代表月 份,最後2位代表日期。顯然:一個日期只有一種表示方法,而兩個不同的日期的表 示方法不會相同。牛牛認為,一個日期是迴文的,當且僅當表示這個日期的 UOJ265 【NOIP2016】憤怒的小鳥1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <cstring> 5 #include <algorithm> 6 #include &l 【bzoj4720】【noip2016】【換座位】期望dp+Floyd對於剛上大學的牛牛來說,他面臨的第一個問題是如何根據實際情況申請合適的課程。在可以選擇的課程中,有2n節 課程安排在n個時間段上。在第i(1≤i≤n)個時間段上,兩節內容相同的課程同時在不同的地點進行,其中,牛牛預先 被安排在教室ci上 【NOIP2016提高組】憤怒的小鳥(狀壓寬搜)數組保存 結果 4.0 2.0 pac 之前 第一個 ... 預處理 題目描述 Kiana最近沈迷於一款神奇的遊戲無法自拔。 簡單來說,這款遊戲是在一個平面上進行的。 有一架彈弓位於(0,0)處,每次Kiana可以用它向第一象限發射一只紅色的小鳥,小鳥們的飛行軌跡均為形如的 【NOIP2016提高組】換教室algorithm .org pan i++ mes ble 安排 turn 路徑 https://www.luogu.org/problem/show?pid=1850 題面很長,實質很水的一道期望DP題。題面自帶勸退效果。 首先用Floyd算出任意兩點的最短路徑。然後設 |