(M)Dynamic Programming:688. Knight Probability in Chessboard
来源:互联网 发布:电脑抓阄软件 编辑:程序博客网 时间:2024/06/08 00:41
class Solution {public: double knightProbability(int N, int K, int r, int c) { int moves[8][2] = {{1, 2}, {1, -2}, {2, 1}, {2, -1}, {-1, 2}, {-1, -2}, {-2, 1}, {-2, -1}}; int len = N; vector<vector<double>> dp0(len, vector<double>(len, 1)); for(int l = 0; l < K; l++) { vector<vector<double>> dp1(len, vector<double>(len, 0)); for(int i = 0; i < len; i++) { for(int j = 0; j < len; j++) { for(int *move : moves) { int row = i + move[0]; int col = j + move[1]; if(isLegal(row, col, len)) dp1[i][j] += dp0[row][col]; } } } dp0 = dp1; } return dp0[r][c] / pow(8, K); } bool isLegal(int r, int c, int len) { return r >= 0 && r < len && c >= 0 && c < len; }};
阅读全文
0 0
- (M)Dynamic Programming:688. Knight Probability in Chessboard
- 688. Knight Probability in Chessboard
- 688. Knight Probability in Chessboard
- 688. Knight Probability in Chessboard
- 688. Knight Probability in Chessboard
- Knight Probability in Chessboard
- LWC 52:688. Knight Probability in Chessboard
- [LeetCode] 688. Knight Probability in Chessboard
- leetcode 688. Knight Probability in Chessboard
- 【第十二周】688. Knight Probability in Chessboard
- Knight Probability in Chessboard问题及解法
- Leetcode——Knight Probability in Chessboard
- leetcode编程记录12 #688 Knight Probability in Chessboard
- 算法课作业系列8——Knight Probability in Chessboard
- Knight Probability in Chessboard:棋盘上计算K步之后棋子仍在棋盘上的概率
- (M)Dynamic Programming:467. Unique Substrings in Wraparound String
- (M)Dynamic Programming:Target Sum
- (M)Dynamic Programming:120. Triangle
- tensorflow中padding方式理解:same与valide
- Buy Tickets(线段树单点更新)
- Android中dp,px,sp概念梳理以及如何做到屏幕适配
- 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
- 1-前端之路的开始——个小动画
- (M)Dynamic Programming:688. Knight Probability in Chessboard
- PCB布线FORTRAN程序例子1
- 批量将图像原地(不开辟新空间)顺时旋转90度保存以及灰度化
- 架构师日记——MongoDB简介和安装使用
- 002_LeetCode_2 Add Two Numbers 题解
- 大型机、小型机、x86架构以及ARM架构服务器的区别
- 插入排序法
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L
- 音视频及FFMpeg概念篇