kuangbin專題一簡單搜尋總結

2021-08-12 00:12:37 字數 1366 閱讀 3130

e - find the multiple

題意:找乙個能整除n的數m,對m的要求是只有0和1組成。n不超過200,m長度不超過100.

思路:很多人都寫了乙個假演算法,就是在unsigned long long 的範圍裡面找就行了,雖然也a了,但博主想在這裡提一下正確的思路。

首先用到了同餘定理

即以任意x為起點,它的臨界點為y=[x(mod n) * 10(mod n)](mod n)

和z=(y+1) (mod n)

只需要找到一條由1至0的路徑,然後輸出路徑就好了

**如下:

#include

#include

using

namespace

std;

void bfs();

void dfs(int);

void ins();

int n;

int pr[210];

bool v[210];

int a[210][2];//利用鄰接表儲存每個點的臨接點

int main()

void ins()

}void bfs()//}}

cout

<<1;//1為起點

dfs(0);

}void dfs(int x)//遞迴查詢路徑

return ;

}

k - fire!

思路:乙個bfs中也可以有兩個不同的物體運動。。

#include

#include

#include

#include

using

namespace

std;

char

map[2005][2005];

struct node

;int n, m;

int dir[4][2] = ;

bool vis[2005][2005];

void solve()

else

if (map[i][j] == 'f')

q.push(person);

bool flag = false;

int time;

while (!q.empty())

node newnode;

for (int i = 0;i < 4;i++)

else}}

}}

if (flag)

printf("%d\n", time+1);

else

printf("impossible\n");

}int main()

}

kuangbin專題一 簡單搜尋

poj 1426 找出乙個由1和0組成的十進位制數m滿足m為n的倍數。有兩種做法,一種是bfs從低位數往高位數搜,另一種是用二叉樹陣列的結構存每次的求出來的餘數,當餘數為0時返回下標,然後根據下標求出其對應的數。1.bfs include includeusing namespace std con...

kuangbin專題一 簡單搜尋 (完整)

1.poj 1321 棋盤排列 類似八皇后 poj 1321 棋盤排列 類似八皇后的排列搜尋。include include include using namespace std typedef long long ll int dp 11 11 char mp 11 11 int col 11 ...

KuangBin 專題一 簡單搜尋 Pots

include include include include include using namespace std cubagea是第乙個瓶子的容量 cubageb是第二個瓶子的容量 stdc是要達到的容量 int used 105 105 cubagea,cubageb,stdc 用於儲存兩個...