第九十九題了,還是好激動的…
【題目大意】
平面上有k個障礙點。 從(0,0)點出發,第一次走1個單位,第二次走2個單位,……, 第n次走n個單位,恰好回到(0,0)。 要求只能沿著東南西北方向走,且每次必須轉彎90°(不能沿著同乙個方向繼續走,也不能後退)。 走出的圖形可以自交,但不能經過障礙點,如圖 7-25所示。每個轉折點只能走一次。 輸入n、k(1≤n≤20,0≤k≤50)和所有障礙點的座標,輸出所有滿足要求的移動序列(用 news表示北、東、西、南),按照字典序從小到大排列,最後輸出移動序列的總數。
【題目分析】
就是搜尋,注意剪枝和處理負座標
// 第一次走一步 第二次兩部 第三次三步 第四次四步 第五次五步 以此類推
#include
#include
#include
#include
#define maxn 250
#define limit 105
// 處理 負 座標
using
namespace std;
int dir[4]
[2]=
,,,}
;int step[maxn]
,ans,n,m;
char dirtion[4]
=;int sum[maxn]
,g[maxn]
[maxn]
;inline
bool
judge
(int x,
int y,
int d,
int f)if(
abs(x)
+abs
(y)> sum[n]
- sum[d]
)return
true
;return
false;}
void
dfs(
int x,
int y,
int d,
int f)
return;}
for(
int i=
0; i<
4; i++)}
intmain
(int argc,
char
* agrv)
dfs(0,
0,1,
-1);
printf
("found %d golygon(s).\n\n"
,ans);}
}
leetcode 簡單 第九十九題 字串相加
給定兩個字串形式的非負整數num1和num2,計算它們的和。注意 num1和num2的長度都小於 5100.num1和num2都只包含數字0 9.num1和num2都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。class solution d...