python風險人群篩查CSP

2021-10-24 17:19:32 字數 1912 閱讀 4323

風險人群篩查

#輸入52

62040100

80100

80100

80100

80100

80100

80100

8060

5060

4660

4260

3860

3460

3010

6014

6218

6622

7426

8630

10090

3194

3598

39102

43106

47110510

204208

2012

2016

2020

20#輸出

#輸入13

80010

10-1-

1000

0-1-

100-

1-10

000#輸出

10

""""

#100分

總體思路:簡單暴力

對每乙個人進行迴圈分析,以步長2來比較座標從而確定是否在區域內;

只要在區域內,經過列表的值就為1;

對於大於等於k的直接推出迴圈,已經找到想要的結果,否則重新歸零,繼續查詢,直到把當前人位置遍歷完

"""n,k,t,xl,ud,xr,uu=

map(

int,

input()

.split())

a=for i in

range

(n):

list

(map

(int

,input()

.split())

))count=

0dliu=[0

]*njguo=[0

]*nfor i in

range

(n):

temp=-2

count=

0#每次進行時都需要重新賦值,因為很可能是break開啟的新迴圈

for j in

range(0

,2*t,2):

if xl<=a[i]

[j]<=xr and ud<=a[i]

[j+1

]<=uu:

jguo[i]=1

#只要存在點在區域內則是經過

if j-temp==2:

#用來保證連續

count+=

1#如果連續則加1

temp = j#temp指向當前值,用來繼續判斷下乙個(+2)是否連續

if count>=k:

#大於等於k時則表示停留

dliu[i]

=k#找到即賦值,並且退出當前人,準備對下乙個人進行處理

break

else

:#當前人的座標雖然在區域內,但不連續

count=

0#對當前人重新查詢

temp=j#記錄當前在區域內的位置

count+=

1#計數加1

else

:#當前人有個別點不在區域內,需要重新計數

count =

0print

(jguo.count(1)

)#經過

print

(dliu.count(k)

)#停留

風險人群篩查

這個題目還是挺簡單的,只需要對每乙個人都處理,累加就可以了,每乙個人的每乙個位置也都處理,然後也是累加就行了。ac include using namespace std int n,k,t,xl,yd,xr,yu 如題目中的意思 int path 0,stay 0 分別表示經過和停留的個數 voi...

CCF認證 202009 2風險人群篩查

題目背景 某地疫情爆發後,出於 應檢盡檢 的原則,我們想要通知所有近期經過該高危區域的居民參與核酸檢測。題目描述 想要找出經過高危區域的居民,分析位置記錄是一種簡單有效的方法。具體來說,一位居民的位置記錄包含 t 個平面座標 x1,y1 x2,y2 xt,yt 其中 xi,yi 表示該居民 i 時刻...

風險人群篩查C 簡單模擬

思路 寫乙個判斷是否在矩形內的函式,只需要判斷再矩形外取反即可 對每一組資料進行判斷,設定標誌位has in,判斷某個人是否已經被統計過,如果存在在矩形內的點,且還未被統計 標誌位為0 則pass 且標誌位置為1 設定標誌位has stay,判斷某個人是否已經逗留,在矩形內時將s值自增1,如果s值大...