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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NOIP2016普及组第三题——海港

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)中,總共有多少個不同的數。

輸入輸出格式

輸入格式:?
第一行輸入一個正整數n,表示小K統計了 n艘船的信息。

接下來n行,每行描述一艘船的信息:前兩個整數ti和ki分別表示這艘船到達海港的時間和船上的乘客數量,接下來ki個整數x(i,j)表示船上乘客的國7。

保證輸入的ti是遞增的,單位是秒;表示從小K第一次上班開始計時,這艘船在第 ti 秒到達海港。

保證 , ,, 。

其中表示所有的ki的和。

輸出格式:?
輸出n行,第i行輸出一個整數表示第i艘船到達后的統計信息。

輸入輸出樣例

輸入樣例#1:?
3?
1 4 4 1 2 2?
2 2 2 3?
10 1 3?
輸出樣例#1:?
3?
4?
4?
輸入樣例#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】

第一艘船在第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個不同的國家。

【數據范圍】?


這題可以直接暴力,但是只對了7個點,三個超時。

邊讀邊運行。讀入time[i] (船到達的時間)和人數(每個人來自的國家),然后,用while取24小時內船數的最大值(x),再將x條船里的來自不同國家的人數統計出來。就拿到7個點——70分。


代碼如下:

const max=86400;var n,i,ans,t,l,j,k:longint;time:array[-1..1000]of int64;m:array[0..1000]of longint;a:array[1..1000,1..1000]of longint;f:array[1..1000]of boolean; beginassign(input,'port.in');assign(output,'port.out');reset(input);rewrite(output);readln(n);for i:=1 to n dobeginfillchar(f,sizeof(f),false);ans:=0;read(time[i],m[i]);for j:=1 to m[i] do read(a[i,j]);t:=time[i];l:=i;while (abs(t-time[l-1])+1<=max)and(l>0) do dec(l);for j:=l to i dofor k:=1 to m[j] do if f[a[j,k]]=false then begin inc(ans); f[a[j,k]]:=true; end;writeln(ans);end;close(input);close(output);

end. 想看更多的請到:http://blog.csdn.net/ssl_zzy?viewmode=contents

轉載于:https://www.cnblogs.com/YYC-0304/p/9500235.html

總結

以上是生活随笔為你收集整理的NOIP2016普及组第三题——海港的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。