洛谷 P1789 Mc生存 插火把

2021-10-02 15:02:51 字數 1308 閱讀 1242

題目描述

話說有一天 linyorson 在「我的世界」開了乙個 n×n(n≤100) 的方陣,現在他有 m 個火把和 k 個螢石,分別放在 (x1,y1)…(xm,ym)和(o1,p1)…(ok,pk) 的位置,沒有光或沒放東西的地方會生成怪物。請問在這個方陣中有幾個點會生成怪物?

p.s.火把的照亮範圍是:

|暗|暗| 光 |暗|暗|

|暗|光| 光 |光|暗|

|光|光|火把|光|光|

|暗|光| 光 |光|暗|

|暗|暗| 光 |暗|暗|

螢石:

|光|光| 光 |光|光|

|光|光| 光 |光|光|

|光|光|螢石|光|光|

|光|光| 光 |光|光|

|光|光| 光 |光|光|

輸入格式

輸入共m+k+1行。

第一行為n,m,k。

第2到第m+1行分別是火把的位置xi yi。

第m+2到第m+k+1行分別是螢石的位置oi pi。

注:可能沒有螢石,但一定有火把。

所有資料保證在int範圍內。

輸出格式

有幾個點會生出怪物。

輸入輸出樣例

輸入 #1

5 1 0

3 3輸出 #1

12輸入 #2

100 1 1

50 50

3 3輸出 #2

9962

我的答案:

使用的暴力模擬,很複雜。

使用了兩個結構體陣列,加乙個二維陣列。

#include

#define max 100

struct fight

;struct figyh

;int

main()

;struct fight fig[max]

;struct figyh fyh[max]

;scanf

("%d %d %d"

,&n,

&m,&k)

;for

(int i =

0; i < m +1-

2+1; i++

)for

(int i =

0; i < k ; i++

)for

(int i =

0; i < n; i++

)else}}

printf

("%d"

, n * n - count)

;return0;

}

洛谷P1789 Mc生存 插火把

題目鏈結 題目背景 初 應該都知道 題目描述 話說有一天 linyorson 在 我的世界 開了乙個 n n n 100 的方陣,現在他有 mm 個火把和 kk 個螢石,分別放在 x 1,y 1 x m,y m 和 o 1,p 1 o k,p k 的位置,沒有光或沒放東西的地方會生成怪物。請問在這個...

P1789 Mc生存 插火把

我沒有看清題意就急忙下手,甚至忘了基本邏輯和資料輸入,需要多加練習啊 修改到最終版本 最後re的原因實在找不出來 我的思路和下面的同學完全一樣但是卻會在第二個點re include include include using namespace std int n,m,k,x,y,o,p,ans 0...

洛谷P1789 Mc生存 插火把(C 版)

話說有一天 linyorson 在 我的世界 開了乙個 n times n n le 100 n n n 100 的方陣,現在他有 mm 個火把和 kk 個螢石,分別放在 x 1,y 1 x m,y m x 1 y 1 x m,y m 和 o 1,p 1 o k,p k o 1 p 1 o k p ...