手机九宫格滑动解锁方法种数(389112种)
来源:互联网 发布:常见网络协议 编辑:程序博客网 时间:2024/05/15 19:07
有妹子问手机滑动解锁多少种方案,于是写了个记忆化搜索得出答案,也是有趣。
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <string>using namespace std;#define N 4int vis[N][N];bool check(int x1, int y1, int x2, int y2){ if(abs(x1 - x2) % 2 == 0 && abs(y1 - y2) % 2 == 0) { int xx = (x1 + x2) / 2; int yy = (y1 + y2) / 2; if(!vis[xx][yy]) return false; } return true;}int dfs(int x, int y, int cnt, int n){ if(cnt == n) return 1; vis[x][y] = 1; int res = 0; for(int i = 1; i < 4; i++) for(int j = 1; j < 4; j++) { if(vis[i][j]) continue; if(check(x, y, i, j)) res += dfs(i, j, cnt + 1, n); } vis[x][y] = 0; return res;}int main(){ memset(vis, 0, sizeof vis); int ans = 0; for(int k = 4; k <= 9; k++) for(int i = 1; i < 4; i++) for(int j = 1; j < 4; j++) ans += dfs(i, j, 1, k); printf("ANS IS : %d\n", ans); return 0;}
0 0
- 手机九宫格滑动解锁方法种数(389112种)
- 手机九宫格加密种数
- Appium九宫格滑动解锁研究
- 自定义控件九宫格滑动解锁
- 九宫格手机解锁有多少种情况?
- 手机九宫格解锁所有可能
- Android手机九宫格密码解锁
- Android自定义控件之滑动解锁九宫格
- 九宫格(安卓手机的图形锁有几种解锁图案)
- Html5实现手机九宫格密码解锁功能
- 手机的九宫格图形解锁算法(判断是否合法)
- Html5实现手机九宫格密码解锁功能
- Unity制作九宫格手机手势解锁密码
- 用calc()绘制手机图案解锁的九宫格样式
- 手机滑动图案解锁
- 手机滑动解锁
- iOS- 九宫格解锁
- android九宫格解锁
- 9.Oracle数据库SQL开发之 连接操作合并列的输出结果
- mysql 学习记录(十)--存储过程
- iOS- UITextField和UITextView区别
- JavaScript动态创建table表格
- SSH和BootStrap-table分页
- 手机九宫格滑动解锁方法种数(389112种)
- 递归算法(recursion algorithm)
- 10.Oracle数据库SQL开发之 理解空值
- UIScrollerView 实现轮播图功能
- iOS-NSDate (Extension)
- 11.Oracle数据库SQL开发之 禁止显示重复行
- spark RDD的元素顺序(ordering)测试
- 用Python制作Powerpoint演示文稿
- Android开发面试题(二)