題目描述
小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)中,總共有多少個不同的數。
輸入輸出格式
輸入格式:
第一行輸入乙個正整數n,表示小k統計了 n艘船的資訊。
接下來n行,每行描述一艘船的資訊:前兩個整數ti和ki分別表示這艘船到達海港的時間和船上的乘客數量,接下來ki個整數x(i,j)表示船上乘客的國7。
保證輸入的ti是遞增的,單位是秒;表示從小k第一次上班開始計時,這艘船在第 ti 秒到達海港。
保證 1≤n≤10^5,∑ki≤3∗10^5,1≤x(i,j)≤10^5,1≤t(i−1)≤ti≤10^9
其中∑ki表示所有的ki的和。
輸出格式:
輸出n行,第i行輸出乙個整數表示第i艘船到達後的統計資訊。
輸入輸出樣例
輸入樣例#1:
輸出樣例#1:3
1 4 4 1 2 2
2 2 2 3
10 1 3
輸入樣例#2:3
44
輸出樣例#2:4
1 4 1 2 2 3
3 2 2 3
86401 2 3 4
86402 1 5
說明333
4
【樣例解釋1】
第一艘船在第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個不同 的國家。
【樣例解釋2】
第一艘船在第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個不同的國家。
開個佇列記錄每艘船上的人數、國籍以及時間,然後模擬即可
#include
using namespace std;
int n,l,r,ans,tot,f;
ints[100005],t[100005],p[100005],q[300005];
int readln()
int main()
while(t[r]-t[l]>=86400)
l++;
}printf("%d\n",ans);
}return
0;}
洛谷 P2058 海港
題目傳送 由於於題目保證輸入的ti是遞增的,所以 發現當我們統計完一艘船的答案後,這個答案多少會對下一艘船的答案有貢獻。同時還發現如果對每個艘船都記錄他的乘客在整個資料出現的所有國籍中相應出現的次數,在這道題的範圍下,顯然會爆空間,其實這個題如果按照一般的靜態陣列儲存的話,光是記錄每個船的乘客就會爆...
P2058 海港 (洛谷)
這個題複製過來真的有點噁心,懶得手打,以後再搬題面吧。今天我雙更了,ac這個題我就完成某谷春令營第一課的作業了 假的 這個題是個雙指標。非常友善。一直往裡讀入就可以了,遇見不是一條船的乘客輸出這一條船前86400秒有多少不同國籍的人,然後從末尾檢視,時間差大於等於86400的人清除,切記以上兩步不要...
洛谷 P2058 海港 解題報告
小k是乙個海港的海關工作人員,每天都有許多船隻到達海港,船上通常有很多來自不同國家的乘客。小k對這些到達海港的船隻非常感興趣,他按照時間記錄下了到達海港的每一艘船隻情況 對於第 i 艘到達的船,他記錄了這艘船到達的時間 t i 單位 秒 船上的乘客數星 k i 以及每名乘客的國籍 x i,1 x i...