p醬的冒險旅途
p醬是個可愛的男孩子,有一天他在野外冒險,不知不覺中走入了一塊神奇的地方。他在0時刻進入這個地方,每一時刻他都只能向某一特定的方向移動長度為1的距離,當然他也可以選擇不移動。移動需要花費1的時間。
各個時刻他允許移動的方向由乙個字串給出,字串只包含u、d、l、r四種字元,其中「u」表示向上(y軸正方向)移動,「d」表示向下(y軸負方向)移動,「l」表示向左(x軸負方向)移動,「r」表示向右(x軸正方向)移動。
字串的第x個字元代表了第x時刻p醬可以移動的方向,字串的長度只有t,也就是說,超過t時刻,p醬就要被**的魔王大爺抓走了~
現在p醬在座標原點,即(0,0)點,而出口在(x,y)點,p醬希望在規定的時間t內盡快走到出口。幫助p醬在最短的時間內離開這裡吧~
第一行包含乙個正數 t (t <= 100),表示資料組數。
接下來每組資料報含兩行,第一行包含三個整數 x,y,t (-10^5 <= x,y <= 10^5, 0< t <= 10^5);第二行包含乙個長度為t的字串,第i個字元表示在i時刻他能移動的方向,字串只包含「u」,「d」,「l」,「r」四種字母。
對於每組資料輸出一行,表示p醬到達出口的最早時刻。如果他無法在t時刻內到達出口,輸出「-1」。
21 -1 5
ldrdr
-2 1 8
rruddlru3-1
第一組樣例:
1、p醬在0時刻位於原點(0, 0),他只能向左移動,但他選擇不走。
2、p醬在1時刻依然位於原點(0, 0),他只能向下移動,於是他向下移動到了(0,-1)
3、p醬在2時刻位於(0,-1),他只能向右移動,於是他移動到了出口(1, -1),所以在3時刻,p醬離開了這片區域!
第五屆acm趣味程式設計競賽第二場(正式賽)
解題思路:
從原點到出口的最短距離肯定是最多只有兩種字元組成。
因為如果一種字元能縮短距離,則對應的另一種字元就是增加距離,
且最短距離中每個字元出現次數是固定的。
這樣,我們每次判斷當前字元能否縮短距離就行了。
#include#include#include#define n 100005
char str[n];
int main()
printf("%d\n",flag);
}
return 0;
}
uestc 1899 P醬的冒險旅途
本題的策略就是 在某個方向選擇行走而不是停留,當且僅當行走能夠縮短p醬與出口的距離 這裡的 距離 有乙個專有的稱呼,稱為曼哈頓距離 manhattan distance 它的定義是兩點間橫座標差的絕對值與縱座標差的絕對值之和,即 dx dy 先把四個方向滿足題意所需要走的個數初始化為零 然後根據給出...
BZOJ1899 午餐(動態規劃)
bzoj 我太弱了 這種d p 完全做不動。首先,感性理解一些 如果所有人都要早點走,那麼,吃飯時間長的就先吃 吃飯時間短的就晚點吃 所以,按照吃飯時間排序 我們不難得出乙個每個人吃完飯的時間 之和前面所有人的打飯的時間和有關 所以 f i j k 表示當前做到第 i 個人,第一列,第二列前面的人的...
UESTC 我要長高
題意是 就是題目描述的那樣了吧 題意很顯而易見,一眼dp題 dp i j 代表第i個人身高為j時的最小消耗,dp i j min dp i 1 k abs j k c j h i 2 複雜度o n h i 2 很明顯有點大,學習了一下單調佇列優化dp之後,發現形如dp i min max dp j ...