血的教訓!!!Hdu1043

2021-10-17 21:11:12 字數 1315 閱讀 6210

老實說第一眼看到這個題,腦子裡第一時間就想到了bfs,但是最後ac真的十分艱辛,中間遇到了很多奇葩的問題。下面一一道來我在此題的收穫

題目傳送門

#include

#include

#include

#include

#include

#include

using

namespace std;

char a[10]

;char b[20]

;int dx=

;int dy=

;map<

int,string> map;

queue q;

intfind

(string s)

}int

getindex

(string s)

return res;

}int edx =

getindex

("12345678x");

char

getchar

(int idx)

}void

init()

}}}}

intmain()

s = a;

int sdx =

getindex

(s);

if(map.

count

(sdx)!=0

)else

}system

("pause");

}

教訓1

以後碰到這種不知道輸入多少個用例的以字串形式接受的題目,不要用scanf與eof搭配,因為有空格就不管用(沒空格還行),用while(gets(s)!=null),像我這個sb就遇到了這個問題,一直報錯output limiit exceed(因為一直輸入不停止呀md)

教訓2

對於map可能會超時,以後遇到這樣的盡量使用map這樣的,使用康拓轉換也可,實在不行那就nmd直接map

教訓3

對於有很多資料庸碌輸入,要及時每次開始前初始化到正確的狀態,切記。

教訓4

對於那種把最終狀態給你了,初態不太清楚的如果沒思路就想著逆向思維。

教訓5

一定要仔細呀,nmd,int dx = ;int dy = ;這裡應改依次對應

{『d』,『u』,『r』,『l』},不是,睜大眼睛看好了,mmp

就這樣了,長點心吧,我是廢物,嗚嗚嗚嗚~~

HDU 1043 搜尋 A 演算法

include include include include include include using namespace std const int maxn 4e5 10 const int mlen 30 char str mlen d udlr int ha 9 int dir 4 2 ...

HDU1043 八數碼問題

include include include using namespace std 通過康托展開來hash 9 有362880 const int maxn 400000 int step maxn int p maxn 2 用於記錄與前面乙個的相對路徑 int d 10 用來統計0到9的階乘 ...

hdu1043 素數回文

整體思想可以理解為打表,可以通過如下辦法打表 但是相對比較麻煩 還可以直接使用陣列,將所有資料直接儲存進來,這種方法相對比較簡單,可以不需要使用高效的素數法 include include include include includeusing namespace std bool prime 9...