#22619: 解題概念說明


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
a746. 画蛇添足 | From: [123.194.188.217] | 發表日期 : 2020-09-20 05:15

解題流程

  1. 根據 N 畫出 NxN 格的空地 (' '),包含柵欄 ('-','|') 的大小為 (N+2)x(N+2) 格
  2. 接下來的 M 行,每行輸入一組座標點 (x, y),根據當前座標點和前一個座標點畫線 ('*')

要注意這裡的 (x,y) 跟數學的座標點不同,x=0 在最上方,x+1 會往下移;y=0 在最左側,y+1 會往右移
(看成陣列的 (i,j) 可能會比較好理解)

自己用到的小技巧

  • 每次只存當下的座標點和前一個座標點,拿到兩個點就把線畫完,可以省去儲存座標點的空間,也省了跑迴圈的時間
  • 畫完柵欄時,把 char[x][N+2] 設為 '\0',之後每列可以用 puts 輸出 (C/C++)
 
ZeroJudge Forum