#23191: 為什麼這樣不會過?


youngyoung (06 蘇昱揚 306)

學校 : 臺北市私立延平高級中學
編號 : 98924
來源 : [180.217.13.133]
最後登入時間 :
2022-05-03 14:31:59
c143. 105北二1爺爺種樹 -- 105北二區桃竹苗基資訊學科能力複賽 | From: [180.217.143.29] | 發表日期 : 2020-10-28 21:45

程式碼如下:
size, lines = [int(i) for i in input().split()], int(input()) matrix = [[0 for i in range(size[0])] for j in range(size[1])] for i in range(lines): spots = [int(i) for i in input().split()] if spots[0] == spots[2]: for j in range(min(spots[1], spots[3]), max(spots[1], spots[3]) + 1): matrix[j - 1][spots[0] - 1] = 1 elif spots[1] == spots[3]: for j in range(min(spots[0], spots[2]), max(spots[0], spots[2]) + 1): matrix[spots[1] - 1][j - 1] = 1 elif (spots[0] > spots[2] and spots[1] > spots[3]) or (spots[2] > spots[0] and spots[3] > spots[1]): for j, k in zip([l for l in range(min(spots[0], spots[2]), max(spots[0], spots[2]) + 1)], [m for m in range(min(spots[1], spots[3]), max(spots[1], spots[3]) + 1)]): matrix[k - 1][j - 1] = 1 else: for j, k in zip([l for l in range(min(spots[0], spots[2]), max(spots[0], spots[2]))], [m for m in range(max(spots[1], spots[3]), min(spots[1], spots[3]) - 1, -1)]): matrix[k - 1][j - 1] = 1 print(sum([sum(i) for i in matrix]))
範例測資也能過,但送出之後好像也只有範例測資過
求解
 
#23200: Re:為什麼這樣不會過?


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
c143. 105北二1爺爺種樹 -- 105北二區桃竹苗基資訊學科能力複賽 | From: [218.161.41.139] | 發表日期 : 2020-10-29 13:30

給你一組測資試試

Input:

4 4
1
4 1 1 4

Output:

4

希望能幫到你 debug

 
#23201: Re:為什麼這樣不會過?


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [122.117.95.179]
最後登入時間 :
2024-11-04 20:21:51
c143. 105北二1爺爺種樹 -- 105北二區桃竹苗基資訊學科能力複賽 | From: [1.168.30.24] | 發表日期 : 2020-10-29 13:33

給你一組測資試試

Input:

4 4
1
4 1 1 4

Output:

4

希望能幫到你 debug


他用  min  max  兩個軸的值會對調。果然你看得出來。

 
#23203: Re:為什麼這樣不會過?


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
c143. 105北二1爺爺種樹 -- 105北二區桃竹苗基資訊學科能力複賽 | From: [218.161.41.139] | 發表日期 : 2020-10-29 13:50

他用 min max 兩個軸的值會對調。果然你看得出來。

for + zip 在搭配兩個 list comprehension,其實看得我頭很痛 ...

 
#23214: Re:為什麼這樣不會過?


youngyoung (06 蘇昱揚 306)

學校 : 臺北市私立延平高級中學
編號 : 98924
來源 : [180.217.13.133]
最後登入時間 :
2022-05-03 14:31:59
c143. 105北二1爺爺種樹 -- 105北二區桃竹苗基資訊學科能力複賽 | From: [180.217.143.29] | 發表日期 : 2020-10-29 21:03

他用 min max 兩個軸的值會對調。果然你看得出來。

for + zip 在搭配兩個 list comprehension,其實看得我頭很痛 ...


謝謝,我會再試試看的(抱歉弄那麼亂)

 

 
#23220: Re:為什麼這樣不會過?


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
c143. 105北二1爺爺種樹 -- 105北二區桃竹苗基資訊學科能力複賽 | From: [218.161.41.139] | 發表日期 : 2020-10-30 12:37

不是為了酸你或批評你寫的不簡潔,我 Python 也還寫得不多,僅希望至少你自己在 debug 時,能清楚了解哪些段落在做什麼

 
#23221: Re:為什麼這樣不會過?


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [122.117.95.179]
最後登入時間 :
2024-11-04 20:21:51
c143. 105北二1爺爺種樹 -- 105北二區桃竹苗基資訊學科能力複賽 | From: [61.223.45.119] | 發表日期 : 2020-10-30 12:44

我是一開始就這樣,不然要除錯真的頭會暈。

x1, y1, x2, y2 = list(map(int, sys.stdin.readline().split()))
 
ZeroJudge Forum