/*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,...