可怕的宇宙射線 Week4 CSPM1 C題

2021-10-04 07:00:28 字數 1301 閱讀 8380

眾所周知,瑞神已經達到了cs本科生的天花板,但殊不知天外有天,人外有苟。在浩瀚的宇宙中,存在著一種叫做苟狗的生物,這種生物天生就能達到人類研究生的知識水平,並且天生擅長csp,甚至有全國第一的水平!但最可怕的是,它可以發出宇宙射線!宇宙射線可以摧毀人的智商,進行降智打擊! 宇宙射線會在無限的二維平面上傳播(可以看做乙個二維網格圖),初始方向預設向上。宇宙射線會在發射出一段距離後**,向該方向的左右45°方向**出兩條宇宙射線,同時威力不變!宇宙射線會**n次,每次**後會在**方向前進a_i個單位長度。 現在瑞神要帶著他的小弟們挑戰苟狗,但是瑞神不想讓自己的智商降到普通本科生那麼菜的水平,所以瑞神來請求你幫他計算出共有多少個位置會被"降智打擊"。

輸入:輸入第一行包含乙個正整數n(n<=30),表示宇宙射線會**n次

第二行包含n個正整數a1…ai,第i個數ai表示第i次**的宇宙射線會在它原方向上繼續走多少個單位長度。

輸出:輸出乙個數ans,表示有多少個位置會被降智打擊

樣例:input:

44 2 2 3

output:

39樣例解釋說明:

由題目簡單計算可得,按最壞情況計算,射線傳播範圍也僅限於300*300的平面範圍內,並不是很大。

所以,我們可以構造一張「圖」,從中心開始發射,模擬**過程,最後遍歷圖確定覆蓋區域。

使用類似於迷宮問題bfs解法的思想,從起點開始發射,在**過程中,對覆蓋到的點進行標記,同時進行記憶化搜尋,在相同位置、相同**情況下,要及時停止,從而降低複雜度。

#include

int vis[

330]

[330][

35][8

],//記錄射線覆蓋區域,表示(x,y)在第cnt次**,d方向延伸

mp[330]

[330

],a[35]

, n,ans;

int dir[8]

[2]=

,,,,

,,,}

;//八個**方向

void

dfs(

int x,

int y,

int cnt,

int d)

if(cnt

//繼續**

dfs(x,y,cnt+1,

(d+1)%

8),dfs

(x,y,cnt+1,

(d+7)%

8);}

intmain()

C 可怕的宇宙射線(Week4CSP模擬)

眾所周知,瑞神已經達到了cs本科生的天花板,但殊不知天外有天,人外有苟。在浩瀚的宇宙中,存在著一種叫做苟狗的生物,這種生物天生就能達到人類研究生的知識水平,並且天生擅長csp,甚至有全國第一的水平!但最可怕的是,它可以發出宇宙射線!宇宙射線可以摧毀人的智商,進行降智打擊!宇宙射線會在無限的二維平面上...

Week4 CSP模擬 C 可怕的宇宙射線

過程總結 眾所周知,瑞神已經達到了cs本科生的天花板,但殊不知天外有天,人外有苟。在浩瀚的宇宙中,存在著一種叫做苟狗的生物,這種生物天 生就能達到人類研究生的知識水平,並且天生擅長csp,甚至有全國第一的水平!但最可怕的是,它可以發出宇宙射線!宇宙射線可以摧毀 人的智商,進行降智打擊!宇宙射線會在無...

week4 CS C 可怕的宇宙射線

問題描述 宇宙射線會在無限的二維平面上傳播 可以看做乙個二維網格圖 初始方向預設向上。宇宙射線會在發射出一段距離後 向該方向的左右45 方向 出兩條宇宙射線,同時威力不變。宇宙射線會 n次,每次 後會在 方向前進ai 個單位長度。計算出共有多少個位置會被打擊。輸入 輸入第一行包含乙個正整數n n 3...