關卡一 洛谷比賽

2022-05-14 16:30:13 字數 1682 閱讀 5622

lj終於弄懂了任務,他需要闖過九九八十一個關卡,才能拿到鑰匙,回到主世界。為了早日回家,lj踏入了第一關。這是乙個由方塊構成的世界,連lj都被方塊化了(mc?!)。

構成這個世界的方塊只有兩種,泥土方塊和柵欄方塊。

由於這是第一關,管理員為了減少難度,將三維世界抽象成二維世界,並派遣npc——ljy去告訴lj,他需要從起點通過跳躍到達終點。對於每次跳躍,他可以原地拔高h格,再水平移動g格。例如:他當前的高度為0,跳躍高度為2,跳躍長度為3,那麼他就可以跳到之後3個位置中,高度不超過2的格仔上(前提是他在跳躍過程不被擋住)

然而,壞壞的ljy把某些泥土方塊偷換成了柵欄方塊(柵欄方塊特性:你的最大跳躍高度加上你的高度必須大於柵欄方塊的高度,但當你站在上面時,你的高度為柵欄方塊的高度。舉例:你的初始高度為0,跳躍高度為2,那麼你只能跳到高度為0或1的柵欄方塊上,而跳不上高度2的,但當你站在高度為2的柵欄方塊上時,你的高度是2,而不是2.5或3)

規定:lj一開始處在第0個方塊的位置,高度為0

lj想知道他能不能到達終點。

輸入格式:

第一行為乙個正整數t,表示有t組資料

對於每組資料:

第一行為三個正整數n,h,g,表示有n個方塊,lj能垂直拔高的高度為h,lj能水平移動的長度為g。

接下來n行由兩個正整數qi,hi組成,qi為0,表示當前方塊為泥土方塊,qi為1,表示當前方塊為柵欄方塊,hi表示當前方塊的高度。

輸出格式:

對於每乙個t有且僅有乙個輸出,yes或no,yes表示lj能到達終點,no表示lj無法到達終點。

輸入樣例#1:

2

5 2 3

0 21 1

0 31 0

1 15 1 2

0 11 1

1 20 1

0 0

輸出樣例#1:

yes

no

對於30%的資料,t=1,n≤10

對於60%的資料,t≤3,n≤1000

對於100%的資料,t≤10,n≤100000,hi≤200000,gi為0或1,h≤1000,g≤n

思路:乙個相當於dp的搜尋模擬;

來,上**:

#include#include

using

namespace

std;

int t,n,h,g,type[100001],hight[100001

];char

word;

bool if_all,if_did[100001

];inline

void read_int(int &now_1)

}void search(int

now)

if(if_did[now]) return

;

else if_did[now]=true

;

int can=now;

for(int i=now+1;i<=now+g;i++)

if(type[i]==1&&hight[now]+h>hight[i])

if(type[i]==0&&hight[now]+h>=hight[i])

break

; }

for(int i=can;i>now;i--)

}int

main()

return0;

}

洛谷 比賽題解

這套題的題目質量很高,寫一發題解。t1 cjwssb最近在物理學科上遇到了難題,他不會計算乙個電路中的總電阻,現在他找到了你,希望你能幫助他。這個電路有如下限定 1 電路只由導線以及電阻為一歐的電阻組成 2 保證電路從左到右連線,即每個電阻或導線的兩個連線點xy保證x 我們可以用dfs求解,這個電路...

洛谷比賽日記

好不容易參箇賽才做幾個小時 只做了前4題,後面5題直接空著其實只是刷刷水題 工廠,模擬題 一開始zz想了半天怎麼貪心,差點去寫搜尋,最後突然發現只能按序放 秒之 一開始沒注意規模wa了,改了long long就a了 不知道為什麼有人t掉,無法理解 1 include 2 intmain 317 an...

洛谷P3230 比賽

emmmmmm,這個之前講課的原題居然出到比賽裡了。我怒肝2h 然後a了此題,結果還是被某高一巨佬吊打.題意 n個球隊兩兩比賽,勝得3分,敗得0分,平得1分。現有乙個總分表,求問可能的比賽情況。解 發現答案與球隊的順序無關,於是按照分數排序。然後發現可能搜到重複狀態,可以記憶化嗎?可以拿hash記憶...