滑動解鎖 藍橋模擬賽

2021-07-29 10:39:36 字數 954 閱讀 8955

思路:暴力搜尋+剪枝。

1.如何快速判斷兩個點之間是否隔著其他點?

二維陣列打表即可,g[x][y]表示x和y之間隔著的點,如果沒有則置為0。

**:

void init()

2.剪枝

如果某條邊(x,y)的兩個端點都被訪問過,但是邊(x, y)和(y, x)都沒有被訪問,那麼後面也不可能訪問到這條邊,那麼剪枝。

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#pragma comment(linker, "/stack:1024000000,1024000000")

#define eps 1e-10

#define inf 0x3f3f3f3f

#define pi pairtypedef long long ll;

const int maxn = 10 + 5;

int vis[maxn], ans, n, g[maxn][maxn], e[maxn][maxn];

struct edgea[maxn];

void init()

void dfs(int u, int cnt)

int flag = 1;

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

} if(flag && cnt >= 4) ans++;

for(int i = 1; i <= 9; ++i) }}

int main()

printf("%d\n", ans);

} return 0;

}

如有不當之處歡迎指出!

藍橋杯模擬賽 滑動解鎖

參考了這位大牛 題目 滑動解鎖 滑動解鎖是智慧型手機一項常用的功能。你需要在3x3的點陣上,從任意乙個點開始,反覆移動到乙個尚未經過的 相鄰 的點。這些劃過的點所組成的有向折線,如果與預設的折線在圖案 方向上都一致,那麼手機將解鎖。所謂兩個點 相鄰 當且僅當以這兩個點為端點的線段上不存在尚未經過的點...

2017藍橋杯模擬題 滑動解鎖(暴力DFS)

滑動解鎖是智慧型手機一項常用的功能。你需要在3x3的點陣上,從任意乙個點開始,反覆移動到乙個尚未經過的 相鄰 的點。這些劃過的點所組成的有向折線,如果與預設的折線在圖案 方向上都一致,那麼手機將解鎖。所謂兩個點 相鄰 當且僅當以這兩個點為端點的線段上不存在尚未經過的點。此外,許多手機都約定 這條折線...

藍橋杯校內模擬賽

1200000有多少個約數 只計算正約數 include using namespace std intmain if i i n ans 1 printf d ans 96 在計算機儲存中,15.125gb是多少mb?include using namespace std intmain 在1至2...