codevs 1733 聰明的打字員 (Bfs)

2022-05-15 22:29:17 字數 1478 閱讀 2520

/*

bfs+hash 跑的有點慢 但是codevs上時間限制10s 也ok

*/#include

#include

#include

#include

#define maxn 10000010

using

namespace

std;

intlen;

bool

f[maxn];

string

ls,rs;

struct

node

;queue

q;int

hash(node x)

intmain()

for(int i=1;i<=6;i++)

}else

if(i==2&&ss[p]<'9'

)

}else

if(i==3&&ss[p]>'0'

)

}else

if(i==4

)

}else

if(i==5

)

}else

if(i==6&&p>1

) }}

}return0;

}

/*

加上剪枝的話就ok了 200ms

對於2 3 4 5這幾個點 左移右移對答案是沒有貢獻的 只有1 6 左移右移再加上swap0 1才有貢獻

所以2 3 4 5這幾個只有已經和目標相同了才左右移

*/#include

#include

#include

#include

#define maxn 10000010

using

namespace

std;

intlen;

bool

f[maxn];

string

ls,rs;

struct

node

;queue

q;int

hash(node x)

intmain()

for(int i=1;i<=6;i++)

}else

if(i==2&&ss[p]<'9'

)

}else

if(i==3&&ss[p]>'0'

)

}else

if(i==4

)

}else

if(i==5

)

}else

if(i==6&&p>1

) }}

}return0;

}

聰明的打字員

題目描述 阿蘭是某機密部門的打字員,她現在接到乙個任務 需要在一天之內輸入幾百個長度固定為6的密碼。當然,她希望輸入的過程中敲擊鍵盤的總次數越少越好。不幸的是,出於保密的需要,該部門用於輸入密碼的鍵盤是特殊設計的,鍵盤上沒有數字鍵,而只有以下六個鍵 swap0,swap1,up,down,left,...

聰明的打字員

正解太妙了 將6 66位上的數字壓縮成乙個int intin t,然後雙向 bfs bfsbf s 爆搜即可,卡卡常數勉強過去 由於 十分簡單,所以就不 想 打注釋了 include include include include include include using namespace st...

聰明的打字員

題目描述 阿蘭是某機密部門的打字員,她現在接到乙個任務 需要在一天之內輸入幾百個長度固定為6的密碼。當然,她希望輸入的過程中敲擊鍵盤的總次數越少越好。不幸的是,出於保密的需要,該部門用於輸入密碼的鍵盤是特殊設計的,鍵盤上沒有數字鍵,而只有以下六個鍵 swap0,swap1,up,down,left,...