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.

更新后的算法:

可以多用一個數組,表示到當前的24小時內,每種人的數量,這樣就可以減少沒必要的循環。
如果當這艘船已經過了24小時,則將這艘船上的每種人的數量減去。
最后就很容易判斷有多少種人。


代碼如下:

var  ans,n,head,tail,i,j,time,m,x:longint;a:array[1..2,1..300000]of longint;b:array[1..300000]of longint;
beginreadln(n);head:=1; tail:=1;for i:=1 to n dobeginread(time,m);for j:=tail to tail+m-1 dobeginread(x);a[1,j]:=time;a[2,j]:=x;inc(b[x]);if b[x]-1=0 then inc(ans);end;readln;while time-a[1,head]>=86400 dobegindec(b[a[2,head]]);if b[a[2,head]]=0 then dec(ans);inc(head);end;tail:=tail+m;writeln(ans);end;
end.

轉載于:https://www.cnblogs.com/Comfortable/p/8412478.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285433.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285433.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285433.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

7z-linux下解決中文名亂碼的終極辦法

為什么80%的碼農都做不了架構師&#xff1f;>>> linux上安裝7z主要是為了解決中文文件名亂碼的問題&#xff0c;壓縮率還是其次原因 具體安裝看參考網址&#xff0c;建議用源碼方式安裝 官網下載地址&#xff1a;http://www.7-zip.org/download.html 源文件項目地址…

C# .Net 視頻下載功能(本機文件)及轉發下載功能(Http遠程文件)

/*服務器本機文件下載*/ Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType "application/octet-stream"; Response.ContentEncoding …

工具箱之 IKVM.NET 項目新進展

在各種群里經常討論的一個事情是.NET 如何調用 Java 的實現&#xff0c;最常見的場景之一就是在加解密方面Java提供的密鑰&#xff0c;C#無法解密&#xff0c; C#中byte范圍是[0,255]&#xff0c;而Java中的byte范圍是[-128,127]&#xff0c;由于密碼生成器是java所獨有的&…

【數據庫原理及應用】經典題庫附答案(14章全)——第十四章:分布式數據庫系統

【數據庫原理及應用】經典題庫附答案(14章全)——第一章:數據庫基礎知識 【數據庫原理及應用】經典題庫附答案(14章全)——第二章:關系數據庫知識 【數據庫原理及應用】經典題庫附答案(14章全)——第三章:結構化查詢語言SQL 【數據庫原理及應用】經典題庫附答案(14章…

一天一種設計模式之六-----工廠方法模式

2019獨角獸企業重金招聘Python工程師標準>>> 一.工廠方法模式 工廠方法模式屬于創建型模式。工廠方法模式定義&#xff1a;定義一個用于創建對象的借口&#xff0c;讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到了他的子類。一般工廠類會有一個工廠的接…

[轉]IPython介紹

1. IPython介紹 ipython是一個python的交互式shell&#xff0c;比默認的python shell好用得多&#xff0c;支持變量自動補全&#xff0c;自動縮進&#xff0c;支持bash shell命令&#xff0c;內置了許多很有用的功能和函數。學習ipython將會讓我們以一種更高的效率來使用python…

.NET MAUI in Mac

點擊上方藍字關注我們&#xff08;本文閱讀時間&#xff1a;4分鐘&#xff09;概要本篇文章主要分享MAUI在m1芯片的設備上運行和支持情況&#xff0c;將我們寫好的MAUI程序編譯為支持mac平臺的版本。在m1芯片剛剛出來的時候有很多開發工具和應用程序對m1芯片的支持不是很友好&a…

30分鐘時長千行代碼《C#程序設計基礎》經典程序,C#菜鳥開發必備!

作者:劉一哥GIS(CSDN博客專家) 博客地址:https://geostorm.blog.csdn.net/ 劉一哥,多年研究地圖學、地理信息系統、遙感、攝影測量和GPS等應用,精通ArcGIS、MapGIS、ENVI、Erdas、CASS、Pix4d、CC、PhotoScan、Inpho、EPS、Globalmapper等專業軟件的應用,精通多門編程語…

前端開發中的SEO

前端開發中的SEO 什么是SEO SEO由英文Search Engine Optimization縮寫而來&#xff0c;中文意譯為“搜索引擎優化”。SEO是指從自然搜索結果獲得網站流量的技術和過程&#xff0c;是在了解搜索引擎自然排名機制的基礎上&#xff0c;對網站進行內部及外部的調整優化&#xff0c;…

grep命令

請見附件&#xff1b;轉載于:https://blog.51cto.com/11203760/1750457

windows 常用系統變量

常用&#xff1a; %USERPROFILE% C:\Users\用戶名 %SystemRoot% C:\WINDOWS %SystemDrive% C: %APPDATA% C:\Users\用戶名\AppData\Roaming %LOCALAPPDATA% C:\Users\用戶名\AppData\Local %windir% C:\WINDOWS %Path% C:\Windows\system32;C:\Wi…

C# 自定義并動態切換光標

本文經原作者授權以原創方式二次分享&#xff0c;歡迎轉載、分享。原文作者&#xff1a;唐宋元明清的博客原文地址&#xff1a;https://www.cnblogs.com/kybs0/p/14873136.html系統有很多光標類型 &#xff1a;Cursors 類 (System.Windows.Input) | Microsoft Docs[1]本章介紹如…

HTML基礎加強

1. 什么是瀏覽器&#xff1a;解釋和執行HTML源碼的工具。 2. 什么是靜態頁面&#xff0c;什么樣的頁面是動態頁面&#xff1f; 靜態頁面&#xff1a;htm&#xff0c;html&#xff08;直接讀取&#xff09; 動態網頁&#xff1a;asp&#xff0c;aspx&#xff0c;jsp&#xff0c;…

視頻播放器for android

寫在前面 好久沒有寫博客了, 中間忙了一堆雜七雜八的事情...工作, 情感, 未來, 人生... 下面是正文 一直要寫一個視頻播放器, 好練練手. 這個app, 從年前寫到現在, 終于算弄出了樣子, 0.0版本. (不得不說, googleVPN值得擁有, android developer網站, android sdk samples, sta…

我要偷偷學習C#,然后學習GIS二次開發之試題匯總(附答案)

一、單項選擇題(每小題2分,共20分) 在類作用域中能夠通過直接使用該類的( )成員名進行訪問。 A. 私有 B. 公用 C. 保護 D. 任何 答案:D 小數類型(decimal)和浮點類型都可以表示小數,正確說法:( ) A. 兩者沒有任何區別 B. 小數類型比浮點類型取值范圍大 C.小數類型比浮…

簡單粗暴無需拼接下載 blob (ts)視頻文件

網上很多視頻采用blob來播放視頻&#xff0c;查看源碼會發現video的src為形如 &#xff1a; src"blob:https://*/f2880c6a-c2c5-4146-96b2-944ae555b76a" <video id"" class"" preload"auto" playsinline"playsinline"…

System.CommandLine版CSRebot

之前自己實現過一個CSRebot命令行工具&#xff0c;現在用System.CommandLine來實現&#xff0c;就規范和省事多了&#xff0c;雖然System.CommandLine還沒有正式發布&#xff0c;但它的實現思路還是很不錯的。下面的代碼只簡單實現了MSSQL庫生成C#體類的功能&#xff0c;其他庫…

Shell重定向

Liunx下系統打開的3個文件&#xff0c;即標準輸入、標注輸出和標準錯誤輸出。用戶的shell將鍵盤設為默認的標準輸入&#xff0c;默認的標準輸入和標準錯誤輸出為屏幕。也就是說&#xff0c;用戶從鍵盤輸入命令&#xff0c;然后將結果和錯誤消息輸入到屏幕所謂的重定向&#xff…

【CASS精品教程】CASS 9.2 for AutoCAD2014啟動提示文件加載,怎么處理?

CASS9.2在安裝完后,首次啟動會提示如下圖樣提示,應該如何處理?請看以下步驟: 解決步驟: 1、安裝完CASS9.2_2014后,首次啟動CASS92,會出現如下圖所示提示。選擇“不加載”。 2、進入AutoCAD系統配置—系統頁面 打開系統頁面菜單 系統界面截圖

VS2015不能修改安裝路徑問題

能修改安裝路徑&#xff0c;固態硬盤空間太小&#xff0c;所以不能裝在C盤啊。 其中&#xff0c;原因是以前安裝過VS2015沒有卸載干凈&#xff0c;解決方法是&#xff1a;下載Visual Studio Uninstaller卸載完全&#xff08;要以管理員運行哈&#xff09; 下載地址&#xff1a;…