8*8的棋盤,有一些障礙物,騎士只可以像象棋中的」馬」一樣走」日」字,問在x點最少走幾步到達y點
深搜/廣搜
廣搜比較快
不過深搜打起來比較簡單
所以我用了深搜
#include
#include
#include
#define min(a,b) a>b?b:a
using
namespace
std;
int b,a[9][9];
int dx[9]=;
int dy[9]=;
int ans;
void count(int x)
void dfs(int x1,int y1,int x2,int y2,int p)//x1,y1是當前座標,x2,y2是目標座標,p是當前的步數
//到目的地了
if (x1<1||y1<1||x1>8||y1>8||a[x1][y1]0||a[x1][y1]==-1) return;
//出棋盤或這是障礙或之前來過了,並且用的步數更少,說明就沒用了
for (int i=1;i<=8;i++)
}int main()
cin>>c>>ch;
int x1=c-96,y1=ch-48;
cin>>c>>ch;
int x2=c-96,y2=ch-48;//上面一大串讀入啊,初始化啊什麼的
dfs(x1,y1,x2,y2,0);//開始搜
if (ans==2147483647) printf("board %d: not reachable\n",++lon);
else
printf("board %d: %d moves\n",++lon,ans);//輸出}}
2020 10 05 普及組 模擬賽C組總結
總結這次考試沒發揮好,第二題沒有拿滿分,下次要繼續努力 t1 superpow 10 題目大意 已知a b 超級冪 代表 b個a的冪,求n對數的超級冪之積的個位數。正確思路 當打表後可以發現 b是沒用的,如果b大於2,b就等於2,答案和原來的是一樣的。所以處理一下跑個快速冪就行了。至於為什麼拿10分...
2020 11 14 普及組 模擬賽C組總結
這是乙個好東西 作者主頁 t1 操作 題目大意 給你乙個數列,讓你執行一些操作後輸出。這一題找規律即可。t2 遊戲 題目大意 判斷每個人被攻擊和攻擊的情況是否符合題目要求。思路 找規律。因為中間不可能出現三個一樣的攻擊操作,所以只需要判斷有沒有大於3的連續操作,直接輸出個數即可。提示 t3 到達 題...
2020 11 21 提高組 模擬賽C組總結
這是乙個好東西 作者主頁 t1 雞腿 樹蔭 題目大意 給你一段數,每次清空 l,r 區間的數,求每次清空後還剩多少個數。思路 線段樹 用線段樹維護區間,利用laz ylazy lazy 陣列來標記這段區間是否清空。暴力 用a ia i ai 記錄離他最近的沒有清空的數的位置,然後直接模擬。t2 su...