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輸出樣例#1:5 2 3
0 21 1
0 31 0
1 15 1 2
0 11 1
1 20 1
0 0
yes對於30%的資料,t=1,n≤10no
對於60%的資料,t≤3,n≤1000
對於100%的資料,t≤10,n≤100000,hi≤200000,gi為0或1,h≤1000,g≤n
思路:乙個相當於dp的搜尋模擬;
來,上**:
#include#includeusing
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記憶...