題目描述
如圖,a 點有乙個過河卒,需要走到目標 b 點。卒行走規則:可以向下、或者向右。同時在棋盤上的任一點有乙個對方的馬(如上圖的c點),該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 c 點上的馬可以控制 9 個點(圖中的p1,p2 … p8 和 c)。卒不能通過對方馬的控制點。
棋盤用座標表示,a 點(0,0)、b 點(n,m)(n,m 為不超過 20 的整數,並由鍵盤輸入),同樣馬的位置座標是需要給出的(約定: c<>a,同時c<>b)。現在要求你計算出卒從 a 點能夠到達 b 點的路徑的條數。
輸入描述:
輸入b點的座標(n,m)以及對方馬的座標(x,y)
輸出描述:
輸出乙個整數(路徑的條數)。
我:0.0
其實這是個很簡單的題,但是,啥也沒想,就莽著上dfs,果然不出所料,tle了
下面是我超時的dfs**:
#include
#include
using namespace std;
typedef
long
long ll;
typedef
struct
node;
ll dd[8]
[2]=
;ll dt[2]
[2]=
;ll mp[25]
[25];
ll n,m,x,y;
ll ans=0;
void
dfs(node a)
for(
int i=
0;i<
2;i++)}
}int
main()
dfs(b)
;printf
("%lld\n"
,ans)
;return0;
}
然後看了一波大佬的**,真的簡單orz,而且判斷條件也簡單,馬能跳到的地方可以利用曼哈頓距離來判斷,這裡講一下曼哈頓距離?
曼哈頓距離:計程車幾何或曼哈頓距離(manhattan distance)是由十九世紀的赫爾曼·閔可夫斯基所創詞彙 ,是種使用在幾何度量空間的幾何學用語,用以標明兩個點在標準座標系上的絕對軸距總和…
**:
#include
#include
#include
#include
#define ll long long
using namespace std;
ll mp[25]
[25];
intmain()
}printf
("%lld\n"
,mp[n+1]
[m+1])
;return0;
}
牛客假日團隊賽 A 乘積最大
今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數字串,要求選手使用k個乘號將它分成...
牛客假日團隊賽11(C題產生數)
牛客假日團隊賽11 c題 給出乙個整數 n n 10 30 和 k 個變換規則 k 15 規則 一位數可變換成另乙個一位數 規則的右部不能為零。例如 n 234。有規則 k 2 2 5 3 6 上面的整數 234 經過變換後可能產生出的整數為 包括原數 234534 264564 共 4 種不同的產...
牛客假日團隊賽5 K
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 題目描述 最近,奶牛們熱衷於把金幣包在麵粉裡,然後把它們烤成餡餅。第i塊餡餅中含有ni 1 ni 25 塊金幣,並且,這個數字被醒目地標記在餡餅表面。奶牛們把所有烤好的...