python算法與數(shù)據(jù)結(jié)構(gòu)朋友圈與水杯實(shí)驗(yàn)題分析實(shí)例
算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)題-朋友圈
實(shí)驗(yàn)任務(wù)
朋友圈是由若干個人組成的集體,已知現(xiàn)在有n個人(1到n),然后給你m個關(guān)系x y,表示x和y是朋友,假設(shè)朋友的朋友也是朋友,求這n個人中最大的朋友圈人數(shù)。
數(shù)據(jù)輸入
輸入第一行為一個正整數(shù)n,m。
接下來有m行,每行有兩個正整數(shù) x 和 y ,表示 x 和 y 是朋友
60%的數(shù)據(jù) 1<=n,m<=100.
100%的數(shù)據(jù)1<=n<=100000.
數(shù)據(jù)輸出
輸出n個人中最大的朋友圈人數(shù)。
輸入示例
3 2
1 2
2 3
輸出示例
3
代碼實(shí)現(xiàn)
rel=int (input().split()[1])
my_list=[]
ne=0
while rel:
rel-=1
flag=0
my_set=set()
my_cont=[int (n) for n in input().split()]
for n in range(len(my_list)):
if my_cont[0] in my_list[n]:
my_list[n].add(my_cont[1])
flag=1
ne=n
continue
if (my_cont[1] in my_list[n]) and flag==0:
my_list[n].add(my_cont[0])
flag = 1
break
elif (my_cont[1] in my_list[n]) and flag==1:
my_list[n]=my_list[n].union(my_list[ne])
my_list.remove(my_list[ne])
if flag==0:
my_set.add(my_cont[0])
my_set.add(my_cont[1])
my_list.append(my_set)
ans=0
for n in my_list:
ans=max(ans,len(n))
print(ans)tips:union返回一個新的集合,需要賦值
效果展示


算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)題-水杯
實(shí)驗(yàn)任務(wù)
有n個水杯疊放在一起
從上到下,編號由1開始一直到n,容量ai不一定滿足也依次增大的關(guān)系,如果i號杯子存的水超過了它的容量,則會像i+1號水杯流,以此類推
現(xiàn)在給你兩個操作
操作一: 1 x y 給x號杯子加y容量的水
操作二: 2 x 查詢x杯子里有多少水。
數(shù)據(jù)輸入
輸入第一行為一個正整數(shù)n
接下來n個元素,表示第i個水杯的容量
接著輸入操作的個數(shù)q
接下來q行操作。
60%的數(shù)據(jù) 1<=n<=100,1<=q<=100,1<=ai,y<=100.
100%的數(shù)據(jù)1<=n<=100000,1<=q<=100000,1<=ai,y<=1000000000.
數(shù)據(jù)輸出
對于每個操作二,輸出對應(yīng)的值。
輸入示例
2
5 10
6
1 1 4
2 1
1 2 5
1 1 4
2 1
2 2
輸出示例
4
5
8
代碼實(shí)現(xiàn)
def action(x,n):
while n>0 and x<=num:
if my_cup[x]>=n:
my_cup[x]-=n
n=0
else:
n-=my_cup[x]
my_cup[x] = 0
x+=1
num=int (input())
my_cup=[int (n) for n in input().split()]
old=my_cup.copy()
act=int (input())
while act:
act-=1
cont=[int (n) for n in input().split()]
if cont[0]==1:
action(cont[1]-1,cont[2])
if cont[0]==2:
print(old[cont[1]-1]-my_cup[cont[1]-1])注釋:這里的old列表需要用到copy函數(shù)進(jìn)行淺拷貝操作(沒有出現(xiàn)嵌套所以不同考慮深拷貝),若是直接賦值則會導(dǎo)致my_cup改變時old也跟著改變。本代碼輸出為實(shí)時輸出
效果展示

到此這篇關(guān)于python算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)題分析實(shí)例的文章就介紹到這了,更多相關(guān)python算法與數(shù)據(jù)結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)數(shù)通設(shè)備端口使用情況監(jiān)控實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)數(shù)通設(shè)備端口使用情況監(jiān)控的方法,涉及Python針對設(shè)備監(jiān)控的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
基于python的opencv圖像處理實(shí)現(xiàn)對斑馬線的檢測示例
這篇文章主要介紹了基于python的opencv圖像處理實(shí)現(xiàn)對斑馬線的檢測示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python統(tǒng)計(jì)詞頻并繪制圖片(附完整代碼)
這篇文章主要介紹了Python統(tǒng)計(jì)詞頻并繪制圖片(附完整代碼)本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08

