文章目录

  • BFS
    • 1091. 二进制矩阵中的最短路径
    • 279. 完全平方数
    • 322. 零钱兑换
  • DFS
    • 200. 岛屿数量
    • 695. 岛屿的最大面积
    • 547. 省份数量
    • 130. 被围绕的区域
    • 417. 太平洋大西洋水流问题
    • 面试题13. 机器人的运动范围
  • DFS 回溯
    • 全排列系列
    • 257. 二叉树的所有路径
    • 79. 单词搜索
    • 17. 电话号码的字母组合
    • 组合系列
    • 集合系列
    • 93. 复原 IP 地址
    • 22. 括号生成

BFS

1091. 二进制矩阵中的最短路径

力扣传送门

思路:BFS
从起点出发,往8个方向(左,右,上,下,左上,左下,右上,右下)分别遍历,也就是考虑每种情况,然后不断向外扩,而且仅考虑为0的节点。由于求路径长度,所以需要知道当节点到达最后一个节点时,是第几层的BFS,于是构造了Node节点,用于存放在矩阵中的位置和BFS层数。

提示:如果不是很懂的话,建议学下BFS,特别是里面的迷宫例子,流程基本很像。这道题就是判断比较多,不然代码看着也不会那么吓人,其实基本步骤能写出来就行,后面那些判断再一点点加上去就行了。

class Solution {//进阶:用grid数组代替inq数组,也就是走过的标为1就行了。//bfspublic int shortestPathBinaryMatrix(int[][] grid) {//队列和第一个元素初始化Queue<Node> queue = new LinkedList<>();        if(grid[0][0] == 0) queue.add(new Node(0,0,1));int len = grid[0].length;boolean [][] inq = new boolean[len][len];//记录是否访问,防止走回头路inq[0][0] = true;if(len == 1) return 1;int result = -1;//结果while(!queue.isEmpty()) {Node tmp = queue.poll();int x = tmp.getX();int y = tmp.getY();//遍历8个方向上的位置//x-1,y-1  x-1,y  x-1,y+1  x,y-1  x,y(本身)  x,y+1  x+1,y-1  x+1,y  x+1,y+1for(int i=x-1; i<=x+1; i++) {      if(i<0 || i>=len) continue;//边界for(int j=y-1; j<=y+1; j++) {if(j<0 || j>=len) continue;//边界if(i==x && y==j) continue;//本身//未访问且为0if(!inq[i][j] && grid[i][j]==0) {queue.add(new Node(i,j,tmp.getLayer()+1));inq[i][j] = true;}}}                              if(inq[len-1][len-1]) {result = tmp.getLayer()+1; //因为tmp是当前层           break;}}return result;}
}
//保存每个节点
class Node{private int x;//行下标private int y;//列下标private int layer;//层次public Node(int x, int y, int layer) {this.x = x;this.y = y;this.layer = layer;}public int getX() {return x;}public int getY() {return y;}public int getLayer() {return layer;}
}

279. 完全平方数

力扣传送门

思路:BFS
计算n范围内的完全平方数,例如12的为[1,4,9],从12出发可以有三条路可走,计算每条路的剩余值为[11,8,3](加入队列,作为下一轮); 以每个剩余值为下一个起点,计算它们能走的路,例如11的可选完全平方数为[1,4,9], 8的为[1,4], 3的为[1],计算走每条路的剩余值,以此类推,直到剩余为0时,返回当前层数。BFS的特点是找到后就结束,比暴力for循环优。

class Solution {public int numSquares(int n) {//保存完全平方数List<Integer> ps = getPerfectSquare(n);//保存剩余值,一开始是nQueue<Integer> queue = new LinkedList<>();         queue.add(n);//层数int layer = 0;while(!queue.isEmpty()) {layer++;            //遍历每层int size = queue.size();while(size-->0){Integer rest = queue.poll();                //计算能走的路for(int i=ps.size() - 1 ; i>=0; i--) {  //从大到小,节省时间//跳过大于剩余值的元素if(ps.get(i) <= rest) {int tmp = rest - ps.get(i);if(tmp == 0) return layer;queue.add(tmp);}}}}return 0;}//利用加法求完全平方数1,4,9,16...相差3,5,7(奇数),加快求解速度List<Integer> getPerfectSquare(int n) {List<Integer> ps = new ArrayList<>();int num = 1;int i = 3;//代表奇数        while(n >= num) {ps.add(num);num = num + i;i+=2;}return ps;}
}

优化:在上面的图中,我们会发现重复遍历的情况,像1,9和1,9其实是一样的,包括4,1和1,4,虽然不影响结果,但影响效率。
具体解决有两种,一种是遵循一定规则,例如拆分时,每次拆分的元素不大于上一个元素,也就是选择的平方数的时候,不能大于前面的选择,这就需要记录上一个平方数的值了,我们可以构造一个类,包含上一次选中的平方数和剩余值)

另一种方式就是使用访问数组,具体参考下一题,下面仅以遵循一定规则为例

class Solution {public int numSquares(int n) {List<Integer> ps = getPerfectSquare(n);//保存剩余值和上一个平方数,一开始都是nQueue<Record> queue = new LinkedList<>(); queue.add(new Record(n,n));int layer = 0;        while(!queue.isEmpty()) {layer++;            int size = queue.size();while(size-->0){Record rd = queue.poll();for(int i=ps.size() - 1 ; i>=0; i--) {                    //下一个平方数必须不能大于上一个平方数,且不能大于剩余值if(ps.get(i) <= rd.prev && ps.get(i) <= rd.rest) {int tmp = rd.rest - ps.get(i);if(tmp == 0) return layer;queue.add(new Record(ps.get(i),tmp));}}}}return 0;}List<Integer> getPerfectSquare(int n) {List<Integer> ps = new ArrayList<>();int num = 1;int i = 3;//代表奇数        while(n >= num) {ps.add(num);num = num + i;i+=2;}return ps;}
}class Record{    int prev;//上一个平方数int rest;//剩余值public Record(int prev, int rest){this.prev = prev;this.rest = rest;}
}

322. 零钱兑换

方法一:BFS,这里采用的是使用访问数组,如果使用遵循一定规则,会出现超时情况。
优化:我们需要转换思路,如果按完全平方数那种做法,例如[1,2,5] 100,这个用例BFS深度就达到20层,而且随着深度越深,队列就越长。原因就出在我所构造的路径节点是以数组中的值来决定的,而这些值(1,2,5)与目标值100相差甚远,而不像完全平方数,数据的选择是100以内的完全平方数。所以这道题需要转变思路:路径节点由剩余值来决定,而不是数组中元素的值,例如上面的例子,节点的取值为100,减去[1,2,5]这些元素,剩下的值作为路径节点,然后使用访问数组标记访问过的无需访问(100-2 和100-1-1是一样的,都是98),也就是整个BFS的节点个数不会超过100个,具体对比如下图(只画了5层),第一张图改变了节点的选择,并使用了访问数组,到了第五层,节点个数基本就开始固定了,即便遍历完整个图,也只需要100个节点。但对于采用数组元素作为节点,其每层的节点个数在不断增加。

class Solution {public int coinChange(int[] coins, int amount) {//特殊情况直接返回if(amount == 0)  return 0;//先排序,这样就能先遍历大的数---不排序也okArrays.sort(coins);        //标记数组boolean[] visited = new boolean[amount];Queue<Integer> queue = new LinkedList<>();queue.add(amount);        //层数,也代表最少硬币数int layer = 0; while(!queue.isEmpty()) {layer++;int size = queue.size();while(size-- > 0) {int rest = queue.poll();   //从大到小                                     for(int i = coins.length - 1; i >= 0; i--) {         //不能大于剩余值if(coins[i] <= rest) {int tmp = rest - coins[i];if(tmp == 0) return layer;//未访问过才能加入队列if(!visited[tmp]) {                            queue.add(tmp);visited[tmp] = true;}}                                    }}}return -1;                }
}

DFS

200. 岛屿数量

力扣传送门

思路一:DFS
遇到为1的点,就以该点为起点,往四个方向搜索(上下左右),每一次搜索完毕,代表一个岛屿构建完毕。对同一个岛的点,在一次遍历后无需再次遍历,因为只要是在同一个岛上,无论从那个点开始遍历,遍历完之后还是那个岛,所以需要对同一个岛上的点标记是否访问过,避免重复遍历(而不是说遇到1就遍历一次,那岛的数量就是1的个数了,显然不对)。
具体如何标记,这里可以开一个布尔类型的数组,但仔细观察,矩阵中为0的点我们是鸟都不用鸟的,说明只要将访问过的点置为零就行了,也就是grid[x][y]=‘0’。

class Solution {private int m;//行private int n;//列public int numIslands(char[][] grid) {m = grid.length;n = grid[0].length;int count = 0;for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {if(grid[i][j] == '1') {count++;//每一次搜索相当于构建了一个岛屿dfs(grid, i, j);}                }}return count;}//往四个方向深度搜索//目的是为了将同一个岛屿上1的点标记为0,代表访问过。防止同一个岛屿重复访问。public void dfs(char[][] grid, int x, int y) {if(x < 0 || y < 0 || x >=m || y >= n || grid[x][y]=='0') return;//边界grid[x][y] = '0';//标记访问过dfs(grid, x-1, y);dfs(grid, x+1, y);dfs(grid, x, y-1);dfs(grid, x, y+1);}
}

思路二:BFS
类似DFS,只是把递归改为队列迭代而已

//存放点的位置
class Node{int x;int y;public Node(int x, int y){this.x = x;this.y = y;}
}
class Solution {private int m;private int n;public int numIslands(char[][] grid) {m = grid.length;n = grid[0].length;int count = 0;for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {if(grid[i][j] == '1'){                    count++;//每一次搜索相当于构建了一个岛屿bfs(grid, i, j); }                                               }}return count;}final int[][] XY = {{-1,0},{1,0},{0,-1},{0,1}};//往四个方向发散搜索public void bfs(char[][] grid, int i, int j) {        grid[i][j] = '0';//标记访问过Queue<Node> fifo = new LinkedList<>();fifo.add(new Node(i, j));while(!fifo.isEmpty()) {Node node = fifo.poll();for(int loop = 0; loop < 4; loop++) {int newx = node.x + XY[loop][0];int newy = node.y + XY[loop][1];if(!judge(newx, newy) && grid[newx][newy] == '1') {fifo.add(new Node(newx, newy));grid[newx][newy] = '0';//标记访问过}}   }       }//边界判断boolean judge(int x, int y) {return x<0 || x>=m || y<0 || y>=n;}
}

695. 岛屿的最大面积

力扣传送门

思路一:DFS
岛屿的数量求的是矩阵中有多少个岛屿,而本题求的是所有岛屿中,那个岛屿的面积最大,即占有1的点数谁最多,思路基本跟求岛屿的数量一样,唯一不同的是,对每个岛的遍历,需要进行计数,且每遍历一个岛屿就和最大值进行比较,并归零进入下个岛屿计数。可根据上题代码进行修改,这里给出其它不同写法,但思路都一样。

class Solution {private int max = 0;//最大计数private final int[] direX= {-1,1,0,0};//往四个方向遍历private final int[] direY= {0,0,-1,1};private int m,n;//行数、列数private int count;//计数public int maxAreaOfIsland(int[][] grid) {m = grid.length;//行n = grid[0].length;//列for(int i=0; i<m; i++) {for(int j=0; j<n; j++) {                if(grid[i][j]==0) continue;count=0;//归零,遍历每个岛都要从0开始                        dfs(grid,i,j);                if(count > max) max = count; //最大值记录               }}return max;}//只有符合的点才能进入dfspublic void dfs(int[][] grid, int x, int y) {                        grid[x][y]=0;//访问过置零count++;//累加int four = 0;while(four<4) {int idx = x + direX[four];int idy = y + direY[four];            four++;if(idx<0 || idy<0 || idx>=m || idy>=n || grid[idx][idy] == 0) continue;    dfs(grid,idx,idy);                                                       }        }
}

思路二:BFS

class Solution {private int max = 0;//最大计数private final int[] direX = {-1, 1, 0, 0};//往四个方向遍历private final int[] direY = {0, 0, -1, 1};int m, n;public int maxAreaOfIsland(int[][] grid) {m = grid.length;//行n = grid[0].length;//列for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (grid[i][j] == 0) continue;bfs(grid, i, j);}}return max;}public void bfs(int[][] grid, int x, int y) {//队列Queue<Node> qe = new LinkedList<>();qe.add(new Node(x, y));grid[x][y] = 0;//首个int count = 1;//计数while (!qe.isEmpty()) {Node node = qe.poll();int four = 0;while (four < 4) {int dx = node.x + direX[four];int dy = node.y + direY[four];four++;//四个方向遍历if (dx < 0 || dx >= m || dy < 0 || dy >= n || grid[dx][dy] == 0) continue;qe.add(new Node(dx, dy));grid[dx][dy] = 0;count++;}}if (count > max) max = count;//更新最大值}
}//存放点的类
class Node {int x;int y;Node(int x, int y) {this.x = x;this.y = y;}
}

547. 省份数量

力扣传送门

思路一:DFS
该题和岛屿数量类似,但并不一样,岛屿数量通过矩阵可肉眼看出有多少个,但这里并不能,因为这里的点代表两个城市的关系(坐标x,y代表两个城市),而岛屿数量是点与点之间的关系(所以能肉眼看出)。
遍历的时候需要按城市之间的关系去遍历,例如遍历第一个城市0(行号),它和其它城市的关系由矩阵第一行决定,而对于第二个城市1,它和其它城市的关系由第二行决定,以此类推。而且对于遍历过的城市无需再次遍历,即visited[i] = true。也就是当你遍历完第一行,你会发现第一列,包括对角线(\方向)都不用遍历了。
[1,1,0]
[1,1,0]
[0,0,1]
这里如果想通过把矩阵值置0的话,可以,不过需要多个置零(ij,ji,jj),且不是很容易理解,具体代码贴这了

class Solution {private int n;//行、列private boolean[] visited;//访问数组,长度为城市的个数,而不是二维矩阵public int findCircleNum(int[][] isConnected) {//初始化int count = 0;//计数n = isConnected.length;visited = new boolean[n];for(int i = 0; i < n; i++) {//每一行代表一个城市与其它城市的关系            if(visited[i]==false) {                dfs(isConnected, i); //每一轮dfs就刷掉一个省份,也就是把同个省的城市标记为truecount++;}            }return count;}    public void dfs(int[][] isConnected, int i) {visited[i] = true;//访问过的城市for(int j = 0; j < n; j++) {if(visited[j]==false && isConnected[i][j] == 1) dfs(isConnected, j);            }    }
}

130. 被围绕的区域

力扣传送门

思路一:DFS
被围绕的区域(为O的点)要求四周都是X(不包括对角线),这就要求该区域的点不能是边界点(第一行、第一列、最后一行、最后一列);
正面思考就是判断哪些区域的点不包含边界点,然后填充该区域,但这样查找并不容易。如果反过来思考,查找哪些包含边界点的区域,就显得十分容易了,因为那些包含边界点的区域只需要通过遍历边界点就可以了。也就是遇到边界为O的点,就从该点出发,构造不可填充的区域(需要做标记),然后根据标记填充矩阵。

class Solution {private int m;private int n;//标记数组,标记不被填充的点,true的话代表不可以被填充private boolean[][] ox;public void solve(char[][] board) {m = board.length;n = board[0].length;ox = new boolean[m][n];//遍历边界点for(int i=0; i<m; i++) {for(int j=0; j<n ;j++) {//只需要遍历边界的点,从而找出那些不能被填充的点,然后做个标记就可以了。if(i==0 || j==0 || i==m-1 || j==n-1) {dfs(board, i, j);}}}//根据标记填充矩阵for(int i=0; i<m; i++) {for(int j=0; j<n ;j++) {                if(board[i][j]=='O' && !ox[i][j]) {board[i][j]='X';}}}}public void dfs(char[][] board, int x, int y) {if(x<0 || y<0 || x>=m || y>=n) return;//防止数组越界if(board[x][y] == 'X' || ox[x][y] == true)  return;//排除X和访问过的ox[x][y] = true;dfs(board, x-1, y);dfs(board, x+1, y);dfs(board, x, y-1);dfs(board, x, y+1);}
}

优化:如果不想使用标记数组,可对原数组进行修改,例如不需要填充设为‘A’,不过后面遍历时就需要将其改为’O’

417. 太平洋大西洋水流问题

力扣传送门

测试例子
[[1,1,1],[1,1,1],[1,1,1]]
[[1,2,3],[4,5,6],[7,8,9]]
超时例子
[[1,2,3,4,5,6,7,8,9,10,11,12,13,14],[52,53,54,55,56,57,58,59,60,61,62,63,64,15],[51,96,97,98,99,100,101,102,103,104,105,106,65,16],[50,95,132,133,134,135,136,137,138,139,140,107,66,17],[49,94,131,160,161,162,163,164,165,166,141,108,67,18],[48,93,130,159,180,181,182,183,184,167,142,109,68,19],[47,92,129,158,179,192,193,194,185,168,143,110,69,20],[46,91,128,157,178,191,196,195,186,169,144,111,70,21],[45,90,127,156,177,190,189,188,187,170,145,112,71,22],[44,89,126,155,176,175,174,173,172,171,146,113,72,23],[43,88,125,154,153,152,151,150,149,148,147,114,73,24],[42,87,124,123,122,121,120,119,118,117,116,115,74,25],[41,86,85,84,83,82,81,80,79,78,77,76,75,26],[40,39,38,37,36,35,34,33,32,31,30,29,28,27]]
[[1548,1421,1767,1678,1323,1073,1147,1240,1857,1913,1967,1763,1864,2010,1558,1256,1916,1818,1605,1398,1102,1176,1503,1064,1279,1428,1213,1652,1720,1520,1434,1258,1282,1191,1277,1947,1605,1765,1176,1451,1667,1484,1556,1521,1835,1103,1118,1740,1262,1065,1479,1353,1230,1971,1406,1498,1740,1961,1139,1802,1822,1915,1401,1446,1095,1667,1382,1689,1422,1899,1482,1430,1372,1027,1292,1196,1471,1400,1277,1722,1454,1745,1064,1025,1057,1811,1512,1786,1761,1992,1929,1573,1896,1319,1360,1980,1328,1731,1011,1739],[1971,481,509,331,849,791,868,309,532,134,20,327,868,73,341,914,873,194,41,976,175,960,890,413,268,239,734,585,959,734,665,271,557,517,592,396,298,802,695,172,926,705,841,136,120,524,40,984,708,71,302,225,21,182,628,632,411,705,559,712,429,215,973,977,74,907,363,714,699,401,876,615,448,59,741,559,573,123,885,623,536,177,838,900,349,809,522,102,856,423,804,275,980,119,594,44,16,948,748,705],[1692,966,662,129,15,745,678,578,210,905,543,736,424,724,978,763,875,490,207,721,256,1001,986,226,110,571,261,468,861,351,515,894,308,519,13,313,254,34,234,806,929,767,885,344,833,853,449,698,686,647,409,932,990,738,500,443,651,751,901,502,445,407,386,743,916,741,398,513,765,622,309,37,732,536,723,555,380,162,244,56,151,995,330,132,723,820,565,364,914,808,856,349,205,584,82,464,316,470,967,423],[1436,618,450,509,145,163,54,867,668,640,913,809,626,233,283,339,395,190,694,299,989,892,638,536,819,62,990,477,875,299,890,300,260,683,799,747,188,195,604,846,826,859,998,442,434,623,771,819,156,807,109,135,42,89,13,851,142,994,318,1007,635,550,649,885,575,790,622,754,975,568,942,791,417,282,575,841,896,689,1003,42,486,102,519,518,181,874,711,665,210,19,14,836,912,653,63,477,433,28,573,751],[1587,506,532,994,130,450,177,16,129,170,400,957,614,261,818,138,126,519,793,326,881,798,504,783,793,558,602,569,576,166,310,152,14,184,488,134,624,1008,493,743,168,235,43,773,487,851,253,955,360,36,623,231,176,118,356,312,18,301,871,584,457,171,78,813,345,909,937,960,907,420,45,417,998,78,532,475,271,775,772,622,154,385,195,672,845,894,974,853,185,835,779,984,996,200,787,684,99,714,986,348],[1478,373,755,465,794,630,282,55,395,396,667,891,123,205,554,959,89,518,154,264,696,276,590,34,466,367,708,555,423,36,245,242,400,990,49,184,962,673,229,348,59,239,581,173,786,125,474,865,986,970,471,672,236,51,48,692,760,99,589,173,125,824,406,867,157,445,41,109,109,613,799,510,194,371,25,322,838,841,177,166,802,990,180,28,383,219,63,133,308,994,296,423,809,44,633,308,832,16,759,283],[1620,901,783,155,614,151,467,442,982,986,951,774,318,121,145,691,330,550,814,628,534,453,394,685,839,17,983,661,23,85,286,985,976,412,482,932,553,292,716,525,620,657,642,929,769,129,962,89,669,119,60,193,914,444,869,743,803,194,747,168,621,23,495,939,425,968,861,968,602,568,836,212,215,468,483,974,587,436,406,598,545,456,781,801,242,992,534,35,529,271,545,140,637,31,422,52,341,273,363,933],[1832,189,487,389,999,961,353,928,739,749,516,626,547,639,417,779,622,293,156,493,907,692,975,534,65,387,928,748,651,281,671,824,812,500,203,153,803,899,71,532,990,577,500,528,207,907,649,171,543,796,654,440,830,971,964,237,349,882,975,342,506,988,156,660,830,350,804,624,591,217,498,571,785,989,441,334,238,81,847,771,219,491,553,391,452,507,618,143,732,935,475,228,913,622,230,85,314,24,699,247],[1233,540,808,359,519,240,35,99,311,872,213,872,705,756,253,499,606,861,633,328,786,450,898,41,414,470,116,70,837,158,307,411,688,106,760,549,688,137,990,341,999,193,203,46,292,446,535,240,297,510,558,425,951,798,808,707,258,266,768,85,766,65,838,444,513,588,335,191,67,316,522,408,851,715,444,133,151,322,363,790,174,263,557,467,403,707,165,1004,316,923,431,72,330,260,859,834,190,184,15,248],[1491,528,646,332,585,433,807,727,745,513,859,909,118,759,367,512,456,522,506,762,787,279,825,107,529,674,931,710,200,289,948,681,807,936,355,734,359,152,803,94,1007,653,346,116,402,703,618,200,567,466,953,344,735,120,441,607,136,715,307,326,994,597,349,143,875,694,867,577,189,661,661,186,656,349,644,48,394,604,238,951,412,533,637,490,643,69,87,121,126,736,438,110,675,129,595,540,814,452,107,345],[1456,111,873,101,802,860,491,187,454,72,128,857,595,756,337,581,167,414,44,635,492,824,87,157,944,672,39,100,466,489,435,912,590,650,355,382,500,189,911,945,251,30,144,188,128,823,759,285,579,146,262,61,960,339,208,894,1001,589,984,809,68,761,711,1000,754,409,373,244,588,274,531,181,646,17,359,764,830,461,391,399,597,643,450,547,324,1000,432,315,580,758,115,990,862,168,981,606,919,696,192,849],[1313,66,20,949,73,370,55,894,173,789,283,760,774,76,297,89,418,71,746,988,172,203,321,24,714,292,972,623,978,154,815,280,210,825,571,626,537,617,510,700,748,135,802,512,553,442,943,962,503,680,292,17,225,603,383,929,237,345,895,205,842,700,476,394,867,389,10,747,996,862,437,86,340,230,589,883,662,874,187,507,544,822,867,112,767,240,31,995,928,268,190,112,310,1008,496,168,388,497,905,726],[1702,684,803,31,256,734,257,260,598,786,110,485,598,967,587,356,549,960,341,819,219,873,921,519,872,408,29,250,247,276,318,938,303,111,312,549,187,559,800,776,335,252,251,276,561,828,622,100,778,305,262,339,168,173,201,30,923,220,622,160,487,283,441,780,736,743,671,914,644,813,680,321,55,273,587,606,443,551,49,563,198,301,893,357,464,84,729,378,646,694,880,475,967,311,597,693,396,259,597,382],[1063,619,46,460,234,975,56,19,517,447,573,57,738,808,404,545,234,124,913,870,808,135,336,117,789,923,800,527,524,740,900,577,701,936,379,926,901,425,287,760,863,850,808,943,648,554,478,224,20,733,85,818,859,763,277,638,676,68,507,543,150,397,110,841,675,831,109,919,246,387,669,451,579,819,737,570,364,205,784,374,929,859,535,130,612,802,110,631,212,607,164,352,347,616,536,12,789,987,921,25],[1365,933,819,934,94,546,494,800,93,620,165,364,470,42,484,424,186,936,397,741,534,903,83,871,861,961,225,640,939,137,1008,293,412,169,569,496,57,405,287,140,16,794,495,828,178,321,242,354,248,982,85,772,875,511,985,79,462,200,709,391,679,59,27,433,218,938,920,265,334,549,396,692,333,233,510,853,896,94,197,134,66,625,248,284,478,223,353,930,766,404,664,787,454,33,211,662,961,473,270,637],[1013,1008,319,687,231,819,530,117,904,69,594,312,684,832,586,152,398,281,425,506,676,431,635,472,454,836,124,405,299,736,385,653,734,694,330,307,856,202,767,102,262,351,404,288,525,333,783,265,604,198,761,622,971,387,84,415,565,551,162,207,629,537,850,354,574,523,651,420,715,408,512,319,101,906,598,617,581,371,872,176,911,976,140,872,705,567,277,260,460,781,809,79,309,1002,775,873,515,417,283,572],[1168,137,882,259,33,822,866,605,183,80,123,84,46,605,946,741,514,565,344,964,336,143,386,987,135,151,202,992,558,827,907,716,954,131,317,330,943,173,277,116,243,390,542,632,337,478,715,842,385,49,148,711,535,524,41,660,18,233,995,566,51,892,624,995,13,931,315,946,446,934,404,32,666,936,654,994,756,359,178,131,751,316,184,276,183,215,278,191,439,615,99,832,497,66,169,852,339,827,140,776],[1752,534,150,408,812,794,392,558,495,560,31,588,218,206,854,391,763,475,924,192,80,14,366,920,70,526,114,399,343,245,517,84,769,657,482,924,441,216,472,279,118,846,857,327,42,54,60,147,871,975,682,293,979,38,555,391,554,660,780,887,895,288,314,1006,287,786,920,71,345,735,340,453,571,539,122,955,935,173,92,148,490,116,432,459,145,977,192,689,979,314,919,864,592,223,213,222,351,123,283,686],[1201,613,130,113,494,242,410,772,757,493,910,237,599,332,38,86,652,220,766,621,525,27,828,459,240,31,671,581,496,944,258,687,899,730,790,384,962,191,146,710,26,46,937,967,721,966,396,715,528,152,678,43,521,496,493,751,517,506,674,356,441,922,33,330,642,165,56,947,698,544,647,66,933,926,376,644,234,762,701,753,904,369,786,415,856,621,508,715,118,172,61,901,437,436,221,421,944,620,358,632],[1155,347,41,77,264,407,63,840,159,754,583,405,114,712,162,312,675,660,17,783,174,421,26,601,847,590,365,133,200,713,108,344,403,139,764,1009,536,169,839,685,914,765,432,370,467,584,672,484,586,679,610,750,442,626,694,632,206,49,755,396,104,853,83,849,982,189,848,860,348,678,887,252,785,309,964,594,883,626,68,459,648,668,552,80,285,588,54,833,979,800,220,73,995,645,265,320,824,103,170,514],[1124,48,109,898,347,63,482,573,680,893,374,670,551,916,92,178,846,137,1002,815,279,564,231,264,199,486,926,365,579,87,869,45,477,968,933,166,22,758,729,44,641,446,56,182,704,138,703,541,617,695,346,886,249,919,493,438,395,409,145,317,838,1004,352,305,963,627,814,327,375,885,713,358,321,759,883,16,887,576,547,495,613,235,723,852,145,206,632,882,958,767,541,138,761,883,434,66,853,590,735,570],[1466,438,919,777,187,144,783,65,710,672,902,313,897,967,507,384,164,129,257,464,238,788,592,341,14,368,750,209,948,475,769,756,904,30,523,81,164,648,488,216,662,380,871,549,338,368,276,844,839,875,650,419,653,232,751,1009,943,491,560,233,956,320,979,850,692,492,274,199,482,752,405,134,475,619,26,155,977,292,341,159,157,981,568,152,555,661,504,488,142,54,712,441,716,681,633,751,516,897,940,340],[1641,687,465,105,296,833,602,616,115,933,117,614,904,675,756,801,679,250,280,811,647,334,594,353,1005,218,94,863,105,376,194,87,54,1001,534,692,824,126,650,281,49,757,885,295,775,631,87,444,224,709,597,861,33,182,556,380,742,641,234,837,359,770,915,403,761,791,86,927,908,78,198,299,826,73,585,591,46,14,377,260,713,964,463,736,488,362,106,220,345,682,48,694,794,305,88,545,438,516,814,336],[1585,1002,626,752,417,553,685,454,909,52,56,612,1007,510,690,837,862,138,48,197,811,438,233,595,733,311,483,513,169,639,840,96,632,808,838,39,703,514,835,602,908,882,556,905,734,236,733,938,364,123,477,517,551,700,455,626,1002,280,129,513,909,311,599,531,109,780,913,154,636,738,746,534,962,292,782,686,870,857,614,225,970,81,84,511,772,529,479,116,799,598,619,51,900,561,572,351,683,827,496,309],[1909,232,185,860,867,957,537,727,156,141,294,116,213,721,969,327,240,438,433,382,379,394,423,269,297,337,610,970,507,448,621,405,23,797,255,880,96,782,949,243,266,586,701,821,297,661,138,879,441,561,251,810,297,16,421,585,696,374,897,193,812,509,588,825,648,833,47,86,958,987,319,214,563,363,25,850,366,505,719,797,408,313,950,695,671,713,270,357,77,510,540,880,1009,118,47,647,294,85,723,242],[1063,385,798,967,90,165,159,446,660,220,585,58,875,877,95,537,581,708,884,648,208,415,870,559,875,908,548,159,983,613,743,387,988,531,696,68,38,845,856,40,407,432,440,273,299,526,800,222,224,674,861,774,431,73,323,297,971,861,798,296,464,532,25,795,405,711,205,786,898,52,816,296,826,247,559,467,763,349,680,329,365,883,445,139,946,758,778,260,961,566,898,415,440,266,552,188,319,748,964,208],[1143,770,494,310,1007,395,767,112,86,789,783,793,662,218,922,951,966,690,201,269,599,441,27,29,697,569,207,1007,659,513,205,143,274,41,443,623,778,553,726,206,684,499,989,689,60,254,630,368,934,173,628,875,604,645,895,644,556,444,641,206,948,188,691,564,571,477,177,691,372,245,887,46,87,866,725,137,110,345,847,387,508,465,252,455,452,489,89,999,276,72,547,566,250,228,120,163,695,639,844,57],[1228,721,446,304,929,161,783,382,849,620,759,347,428,353,144,870,185,223,859,451,285,748,1007,877,967,469,30,1004,98,864,404,315,927,840,961,847,343,86,219,182,49,320,872,467,15,1006,679,190,572,881,983,199,619,332,419,576,791,439,923,880,646,317,537,915,499,841,752,832,917,313,357,956,975,219,765,981,567,435,513,481,658,487,671,267,161,432,186,943,861,99,165,849,758,692,107,599,875,201,773,783],[1506,120,81,822,681,189,145,239,966,649,710,614,478,723,871,629,145,47,914,349,488,69,540,588,104,637,177,969,829,941,94,676,403,166,488,75,697,624,304,653,615,356,609,83,422,822,54,557,860,959,248,690,370,779,269,464,758,436,424,577,719,508,243,113,16,74,178,703,688,824,698,293,170,297,718,582,110,114,482,312,415,720,344,776,841,603,230,590,382,996,157,91,495,743,194,853,807,362,547,837],[1529,587,472,689,227,532,613,679,636,437,981,394,500,315,160,331,261,380,263,633,367,763,714,204,848,251,47,997,955,936,824,474,514,638,505,731,160,460,752,138,888,723,522,730,380,24,403,983,395,657,606,104,410,663,298,248,256,687,235,201,614,401,665,470,29,512,543,531,963,285,11,193,350,876,913,72,242,306,46,979,953,994,73,705,999,713,295,245,743,872,437,347,263,444,159,634,947,692,507,900],[1320,861,83,659,79,986,721,311,634,109,281,578,94,344,625,435,400,911,671,133,773,98,822,379,532,971,355,821,1005,853,711,314,56,136,315,125,112,378,426,89,830,697,657,914,384,624,691,126,525,352,249,641,792,413,10,667,726,355,478,721,550,180,377,596,658,34,711,113,402,480,192,222,519,839,478,893,453,160,361,321,854,952,952,637,355,304,294,71,649,762,134,542,284,501,128,933,525,182,36,270],[1653,218,834,161,399,655,397,194,805,748,857,1001,691,799,628,388,445,264,450,437,17,574,969,643,418,439,566,933,611,944,545,253,504,370,757,893,15,144,430,162,882,277,153,915,419,124,294,854,378,86,281,737,650,592,371,58,22,279,334,623,566,869,219,60,581,966,296,586,100,716,90,324,335,586,230,744,700,866,941,68,942,564,148,934,147,509,983,159,130,659,772,686,518,981,737,90,289,375,18,379],[1434,99,694,758,675,266,845,717,474,776,127,406,330,265,330,467,764,655,968,885,304,83,561,165,406,640,245,686,1005,605,55,428,46,91,529,63,699,364,770,163,482,888,911,802,143,232,612,250,229,922,477,524,995,380,679,392,11,266,420,358,861,465,129,250,899,648,303,588,354,64,94,826,942,995,970,427,569,924,667,789,837,486,655,174,857,676,908,858,932,318,558,135,126,677,375,15,667,669,945,363],[1076,381,179,359,367,492,776,278,758,786,409,937,262,54,102,109,720,352,309,994,661,210,472,129,229,189,486,887,200,421,240,265,793,762,614,502,596,733,770,344,509,170,272,113,566,716,213,629,58,864,965,61,64,779,180,284,959,656,513,501,420,743,757,555,847,713,47,785,436,159,120,287,671,734,391,580,440,946,199,488,800,154,540,855,924,62,481,225,709,984,716,471,69,815,16,907,519,405,682,297],[1907,144,927,568,868,308,138,298,596,679,129,386,175,11,583,441,63,54,656,114,380,715,575,440,520,581,689,381,328,713,669,225,848,586,783,706,236,263,347,822,284,466,550,449,819,476,881,872,872,879,329,243,584,894,673,95,818,704,466,136,407,477,351,245,405,476,294,631,81,631,795,355,439,688,147,248,154,18,462,368,887,781,601,462,666,616,899,826,310,355,952,708,823,646,295,570,464,579,192,888],[1553,329,233,981,1007,370,219,503,730,672,214,608,795,157,412,451,764,301,267,416,998,562,466,163,550,104,724,1004,673,906,882,216,577,458,539,927,170,749,420,243,763,624,841,548,772,595,342,878,886,951,636,874,855,445,28,395,539,742,742,554,990,966,112,909,414,642,826,927,733,237,160,838,203,343,728,317,280,412,537,156,354,516,372,199,951,742,937,832,826,669,728,158,625,831,58,382,815,874,651,890],[1454,153,70,999,838,788,306,108,191,186,606,887,692,968,428,633,53,355,807,221,366,877,370,334,50,770,58,855,634,699,87,430,842,147,419,22,926,67,120,459,243,716,688,925,674,106,900,69,804,49,281,512,917,993,836,957,753,884,155,377,925,232,149,109,370,910,121,638,968,231,439,553,937,117,469,954,565,711,365,711,751,636,566,10,619,392,957,362,619,102,82,886,677,573,986,389,474,449,17,432],[1024,798,975,302,257,786,246,164,840,954,866,933,580,422,933,542,156,880,246,117,325,670,994,992,234,322,723,698,113,730,472,126,870,789,419,469,918,1007,623,748,951,831,671,874,595,594,406,94,816,994,201,483,655,537,817,231,849,530,919,305,602,733,421,814,512,830,273,420,180,887,510,121,708,171,985,646,107,733,730,266,70,921,739,715,801,899,936,992,419,197,287,364,272,699,168,774,871,432,537,41],[1662,37,153,359,551,480,347,648,556,67,904,616,331,986,673,122,875,951,104,636,490,382,342,752,423,501,868,284,275,747,316,926,775,811,627,668,281,965,658,179,22,553,785,343,881,800,807,98,93,902,724,573,626,409,667,39,900,526,313,165,263,619,81,380,420,698,390,44,1005,39,213,18,582,341,703,805,483,853,893,567,745,959,482,713,358,140,742,600,1008,397,755,613,1007,178,336,769,219,716,155,214],[1746,359,574,669,42,620,464,515,463,699,424,550,1001,897,253,701,379,337,292,729,724,389,332,721,558,658,833,119,717,978,323,452,679,240,464,711,850,270,569,655,960,335,195,303,222,790,994,943,117,276,662,831,1008,337,895,908,337,70,17,44,38,682,839,60,912,293,113,104,553,672,749,855,998,934,148,562,714,133,848,173,751,852,995,749,531,232,647,859,292,654,245,672,679,426,722,581,709,826,676,605],[1841,767,802,180,692,941,85,748,416,275,264,509,117,249,249,991,471,238,192,105,235,427,767,904,844,832,827,895,1000,845,842,182,603,987,353,637,918,780,727,676,45,981,175,504,572,766,485,385,347,667,480,572,437,590,818,623,412,635,860,402,823,45,574,768,22,269,395,282,39,464,300,426,436,817,273,998,574,100,726,263,110,196,177,537,776,985,502,530,962,704,274,127,739,839,885,103,450,622,375,832],[1078,17,248,503,825,863,843,741,954,559,994,54,98,161,933,216,136,777,737,440,471,1001,558,553,182,433,646,623,46,364,445,465,371,35,310,186,889,143,917,185,45,253,229,485,404,504,691,882,271,770,665,732,762,213,627,286,988,264,251,376,970,686,831,331,64,131,860,295,617,767,470,652,11,41,479,757,535,160,630,148,921,637,222,25,840,840,301,170,446,543,537,406,571,358,727,977,480,577,614,87],[1688,74,81,40,457,550,787,982,52,759,472,963,386,685,330,568,515,974,729,951,859,256,699,772,604,416,92,426,336,696,503,13,761,926,43,208,466,172,533,509,922,347,814,650,22,487,209,879,803,928,172,652,174,861,766,120,620,848,537,946,535,382,949,638,299,334,836,107,496,711,958,760,401,115,401,413,592,600,635,385,870,797,379,34,649,135,496,259,326,23,547,851,748,838,479,37,162,657,486,1000],[1712,435,751,102,540,494,505,474,436,130,201,296,270,570,672,261,47,158,862,363,524,399,204,262,227,25,641,731,673,117,73,726,894,814,818,424,650,665,888,76,138,79,362,398,991,24,1001,29,525,853,734,39,242,281,643,811,296,274,884,311,733,947,27,618,104,187,384,744,843,263,163,971,684,515,711,18,882,702,389,397,545,113,426,129,384,411,282,23,27,156,676,750,445,46,710,539,223,85,626,56],[1691,779,369,716,284,70,724,508,762,103,895,649,559,663,768,285,64,392,650,81,538,317,174,974,353,874,855,918,301,471,317,333,592,676,40,219,89,106,717,193,552,603,833,101,608,943,376,663,678,17,734,206,676,250,522,371,115,720,279,758,533,938,82,116,605,464,677,36,912,384,219,454,329,394,545,928,680,264,933,348,623,657,896,289,250,761,1002,707,471,271,455,346,200,879,452,147,333,471,525,236],[1847,734,32,517,471,920,435,493,174,358,831,139,358,69,418,598,820,410,295,633,23,92,970,565,962,764,54,637,226,569,215,414,646,238,921,459,148,699,942,664,399,763,793,747,822,553,687,985,305,324,608,318,759,920,226,711,675,622,338,243,182,544,647,170,124,910,619,262,599,551,916,989,656,699,78,820,242,108,795,537,422,746,197,171,656,765,224,673,378,905,258,902,791,895,62,905,148,23,157,737],[1565,415,716,210,104,137,372,688,235,158,567,999,894,106,513,892,862,727,908,582,622,156,474,755,394,878,650,532,891,797,611,797,554,670,349,648,797,711,678,22,211,587,363,95,684,866,330,888,936,580,460,900,726,276,646,462,496,286,984,377,426,586,516,970,246,855,961,385,908,629,749,110,207,102,547,233,311,867,111,237,437,913,127,506,179,763,958,665,392,285,384,808,861,890,120,449,87,71,824,985],[1044,563,85,592,1007,623,167,308,832,268,535,612,523,1005,108,44,110,408,51,492,683,777,642,534,657,753,325,86,166,139,413,551,44,841,133,42,454,290,340,628,900,218,230,413,213,680,799,313,79,840,148,752,607,780,629,606,875,944,34,32,426,438,573,460,269,49,844,65,681,527,35,572,735,256,327,290,278,469,593,699,299,83,442,249,854,413,845,719,347,870,93,115,650,1009,566,909,400,752,316,71],[1270,341,985,346,939,655,978,208,114,562,897,403,987,681,642,831,84,830,893,774,42,328,879,682,327,787,933,717,530,239,131,141,570,106,830,500,751,798,50,855,702,289,601,680,313,585,853,739,405,736,503,789,55,373,461,724,502,384,784,374,613,905,506,526,1001,678,368,95,466,760,292,511,391,883,181,694,811,24,424,558,103,269,338,148,984,789,214,477,516,988,841,471,883,689,987,227,357,697,312,166],[1448,594,667,181,820,190,865,621,204,631,169,649,891,497,139,217,629,344,684,487,322,868,948,548,547,278,765,247,965,419,755,755,1003,412,278,165,592,133,776,138,107,288,778,340,127,907,547,746,593,574,223,906,432,514,796,321,782,551,910,89,960,655,186,305,409,454,813,991,930,931,472,27,209,592,709,327,841,246,415,425,162,629,673,936,485,459,248,257,352,500,336,654,146,865,301,545,309,104,879,581],[1027,693,950,225,275,649,894,106,238,300,873,390,271,536,317,746,337,907,345,679,749,23,323,885,878,615,773,530,61,994,101,77,677,42,645,294,681,529,742,909,171,606,642,432,484,949,520,812,198,855,833,937,869,499,165,737,104,280,257,155,264,701,575,283,733,210,919,756,81,651,656,243,599,640,665,74,579,528,228,119,373,51,46,232,892,553,312,986,823,911,484,429,602,401,702,677,601,611,424,672],[1606,422,257,194,52,265,610,973,783,828,82,146,222,470,721,104,14,375,433,827,628,259,247,221,650,291,240,593,893,654,607,488,66,855,24,108,110,625,71,235,795,495,723,359,956,434,806,960,151,229,777,770,830,366,333,470,648,563,53,883,208,650,713,616,847,727,67,947,694,480,172,480,966,886,181,912,662,977,214,804,548,981,916,368,690,239,180,328,144,575,553,342,216,256,301,405,325,358,343,10],[1829,857,832,784,85,1003,38,738,971,242,884,509,566,142,220,246,371,390,916,505,308,459,190,866,57,833,261,372,181,594,372,351,794,194,478,869,188,506,949,501,739,175,352,647,307,914,883,20,647,141,868,945,942,400,801,989,223,52,351,394,989,714,87,773,250,555,984,780,52,276,271,133,441,966,770,739,870,995,101,507,126,959,442,58,349,233,37,562,628,730,298,607,434,376,722,27,921,696,797,315],[1963,411,438,746,367,550,475,227,535,566,77,1003,868,509,403,207,85,430,112,703,503,400,300,279,118,12,296,30,50,84,335,355,837,116,91,194,656,908,763,182,816,830,527,674,330,921,224,405,693,326,98,186,68,740,456,177,94,742,549,134,168,226,831,995,332,264,531,331,514,285,503,321,105,20,337,777,283,551,524,967,219,964,143,278,46,589,797,130,674,336,607,832,904,780,818,579,35,691,900,539],[1967,393,202,414,755,530,533,29,71,400,338,633,706,471,901,743,403,40,863,67,366,812,889,612,583,49,181,960,731,71,489,39,806,682,443,552,554,319,923,615,709,251,590,405,64,481,490,457,511,344,514,219,498,746,822,71,785,993,21,858,407,853,888,203,877,673,97,421,982,362,378,33,955,959,781,10,782,261,457,284,947,962,845,788,698,1009,849,825,345,213,674,742,408,904,935,275,919,375,686,244],[1728,406,267,673,355,390,673,128,994,472,754,931,776,941,709,816,941,901,632,276,456,648,360,854,894,637,471,803,1002,499,37,72,895,647,735,241,27,750,711,11,212,455,285,979,386,336,785,669,579,759,287,25,749,637,221,633,617,682,427,961,171,806,23,57,443,100,640,813,840,341,814,395,786,441,716,514,768,843,174,337,593,803,705,684,431,916,308,390,941,77,341,102,873,707,501,307,797,131,110,980],[1463,266,717,590,50,423,447,160,256,611,839,191,404,534,866,177,793,516,909,724,583,241,816,446,938,308,95,77,781,547,399,234,804,106,166,844,519,603,346,118,556,175,651,303,700,859,822,483,365,722,197,290,953,355,79,233,1005,164,652,777,702,42,353,848,138,509,34,1000,455,370,460,1001,535,101,646,577,303,459,50,10,171,589,291,466,287,360,41,282,866,683,49,558,67,392,396,196,244,420,538,689],[1133,988,32,658,79,669,225,724,470,618,725,631,197,1006,87,826,708,470,99,564,143,490,465,553,225,851,739,459,614,267,490,736,597,864,736,666,875,952,381,335,560,448,956,99,444,385,916,494,197,357,48,683,837,855,226,52,49,307,853,1005,564,685,731,503,540,810,511,405,752,882,83,654,672,381,95,106,109,353,942,296,700,333,969,880,178,185,922,217,482,118,212,388,793,286,881,323,86,383,71,180],[1608,144,176,270,867,613,718,966,309,1003,253,351,326,564,221,846,740,486,54,564,594,608,295,377,236,166,43,664,891,456,186,841,942,704,453,799,308,161,756,607,506,351,948,822,905,512,659,987,988,55,542,924,1005,827,291,584,335,676,238,217,122,767,400,54,461,843,844,759,346,942,708,843,283,647,1007,178,501,656,156,479,53,40,393,401,857,26,975,182,45,203,741,157,960,131,202,764,316,388,513,653],[1321,212,486,593,201,483,761,44,482,259,513,877,289,248,268,488,616,233,13,651,779,744,151,81,218,343,835,524,721,339,519,31,893,995,966,436,821,69,470,293,319,325,160,950,915,771,429,521,994,432,515,763,518,656,835,726,341,660,593,404,341,102,425,576,440,733,1002,251,792,462,886,101,129,388,42,34,149,461,898,486,235,403,239,743,401,416,460,732,419,395,126,750,839,893,669,269,616,661,862,750],[1467,90,842,585,821,226,962,960,29,850,436,254,595,18,987,986,776,789,60,185,526,528,278,356,411,937,967,369,588,820,109,396,252,293,972,63,861,276,366,232,116,792,476,701,152,806,29,919,937,79,94,454,597,362,152,350,641,109,61,220,271,512,606,514,796,920,567,999,186,923,222,644,58,40,687,200,188,706,461,468,775,898,912,714,250,54,406,882,505,457,444,767,960,392,271,98,655,180,439,183],[1447,651,170,494,34,847,36,564,544,488,22,661,376,276,366,968,672,114,192,168,562,978,277,864,713,538,952,358,60,381,883,496,375,43,980,751,881,359,305,767,837,670,418,555,936,126,865,599,231,400,109,135,368,376,989,71,256,931,771,306,654,997,793,19,30,115,112,253,464,760,10,643,420,419,188,346,535,396,287,108,786,386,233,144,104,212,558,350,485,319,647,130,306,430,491,679,887,594,922,342],[1345,923,975,106,684,506,442,561,892,72,660,668,800,235,154,895,438,702,235,265,364,872,385,12,644,219,33,522,155,946,206,841,211,523,937,237,19,721,788,253,783,790,911,574,16,408,459,796,100,36,51,806,899,779,161,885,988,184,749,133,472,945,964,25,811,243,252,820,954,31,64,728,811,317,644,817,715,445,955,158,471,997,306,712,766,457,588,96,632,679,219,446,967,525,462,768,758,704,578,54],[1726,984,124,879,292,758,38,349,193,984,497,1007,323,794,709,431,593,639,517,567,309,726,1004,618,593,456,376,693,502,296,737,570,271,852,439,905,600,819,244,136,793,84,133,458,220,184,879,803,814,386,361,113,454,707,73,37,505,439,72,997,725,800,557,338,642,338,585,584,148,172,62,283,246,537,732,456,712,601,601,516,330,952,971,774,1001,34,154,496,815,216,484,882,1006,383,211,990,64,138,917,554],[1301,969,179,536,497,901,334,551,845,278,57,517,220,370,281,564,746,777,50,551,984,876,423,332,602,976,313,656,105,220,552,395,531,721,274,370,965,950,911,152,218,958,659,781,670,282,335,406,50,727,947,376,594,713,698,186,679,353,184,126,915,726,864,437,437,480,797,392,772,51,534,981,999,535,104,12,808,781,408,200,498,698,566,434,753,606,610,774,950,136,891,855,852,97,634,280,567,774,14,329],[1816,891,652,156,416,98,158,214,869,909,756,710,949,312,486,692,909,87,808,201,565,41,46,408,128,23,30,685,787,34,1005,592,915,999,90,674,88,239,230,947,490,977,999,429,279,476,463,530,905,613,721,460,645,110,210,763,123,230,439,900,607,786,834,512,127,914,528,205,495,749,495,327,716,484,98,985,302,903,858,197,507,569,1000,142,669,200,247,782,773,676,24,370,804,200,224,922,457,743,469,942],[1483,954,612,188,781,700,515,73,594,715,613,91,275,603,575,286,145,812,59,908,831,425,620,977,616,187,889,415,920,349,699,744,645,301,274,416,992,131,480,576,837,83,1009,102,28,574,378,515,376,779,766,549,547,376,517,505,553,396,910,815,87,599,549,723,891,813,481,873,935,951,791,762,376,790,206,394,354,926,900,72,696,656,964,233,374,471,728,918,209,980,723,287,569,615,352,450,418,823,665,695],[1118,446,799,483,578,995,220,922,912,110,337,950,108,291,525,472,752,595,732,303,565,798,932,124,403,626,917,163,440,572,849,899,361,990,372,929,328,582,194,582,34,873,522,484,154,37,299,248,974,21,893,529,809,816,995,554,432,902,708,214,817,899,103,168,231,818,439,549,742,623,121,119,486,985,593,982,364,882,572,328,246,456,847,397,262,833,942,36,77,992,241,884,233,334,394,454,494,824,994,227],[1438,457,336,266,433,919,238,787,144,153,106,380,951,295,119,555,118,403,581,538,385,812,412,960,489,797,405,973,611,741,542,390,188,868,998,611,778,227,741,264,722,837,986,663,122,95,208,583,489,131,111,216,286,865,167,765,1004,914,80,957,645,613,338,823,471,326,777,591,895,508,197,959,687,173,612,151,611,162,76,442,636,177,648,912,385,157,19,379,61,441,327,48,44,655,214,858,323,981,791,561],[1832,979,510,860,494,465,1001,95,969,68,527,595,587,518,849,962,17,858,332,69,290,1001,459,676,646,663,876,311,986,658,214,807,979,715,657,815,522,1001,253,481,59,770,419,988,630,258,941,638,459,615,49,739,606,498,757,594,152,624,247,128,624,452,278,945,157,277,750,669,268,993,492,669,106,253,648,726,502,931,706,951,536,745,32,484,234,779,68,728,745,305,846,359,747,466,294,246,734,387,257,992],[1371,92,1004,818,335,642,535,179,915,583,472,441,319,494,267,895,616,325,613,703,972,449,53,62,258,689,650,982,66,898,316,779,332,310,587,657,294,464,827,199,38,289,982,699,126,239,584,84,906,187,777,869,978,172,273,226,204,913,198,612,153,857,381,475,509,311,123,794,117,292,335,145,923,308,186,391,889,760,465,786,289,585,997,258,99,260,826,293,515,367,896,659,214,619,124,713,272,589,849,380],[1872,175,867,785,825,44,166,704,146,974,832,426,901,819,674,990,421,842,626,279,199,864,928,403,825,42,459,88,622,298,458,835,815,667,962,630,701,119,677,838,435,499,606,326,661,622,658,424,454,274,693,644,128,963,389,944,996,838,22,960,127,822,137,932,479,90,905,523,551,572,703,976,413,299,644,416,263,292,183,707,557,866,693,27,820,73,961,158,901,325,460,370,489,939,645,311,19,540,176,560],[1455,869,878,209,510,512,616,763,147,789,812,694,997,496,63,159,911,367,659,154,34,461,515,514,391,502,167,400,32,333,303,828,192,523,27,44,26,633,149,515,764,951,551,104,789,604,605,42,961,255,187,986,58,44,842,439,536,999,182,910,322,827,728,856,340,745,890,708,369,29,213,475,322,754,569,454,349,517,486,652,762,15,980,162,49,812,592,927,801,116,827,465,933,545,311,263,281,191,962,992],[1563,517,457,227,262,369,671,953,876,499,947,980,857,918,132,248,720,66,166,864,172,983,319,447,871,621,53,142,154,357,476,707,864,275,924,468,634,937,411,852,778,349,174,625,257,649,216,319,57,372,173,572,697,483,1009,558,94,52,42,590,399,508,287,606,774,553,64,750,832,818,945,601,509,461,568,108,100,774,417,500,488,581,62,528,406,413,76,842,808,461,422,549,959,700,145,75,595,552,816,770],[1361,103,713,859,554,271,957,997,388,716,487,218,287,891,736,35,646,155,867,444,606,280,984,907,322,471,973,259,13,779,19,363,224,722,564,768,336,863,107,714,570,584,274,199,817,1001,225,454,498,82,888,94,704,214,991,16,676,954,266,31,75,627,737,289,340,291,400,666,145,497,722,705,424,986,894,231,329,461,27,817,534,258,901,228,462,235,587,480,531,195,854,597,812,581,228,494,214,618,150,349],[1459,862,396,872,191,633,445,862,84,463,670,960,711,913,179,515,490,108,338,12,645,182,599,447,753,169,932,957,130,424,649,578,629,387,792,162,10,579,14,437,384,674,387,437,930,908,943,410,1006,271,412,993,795,353,431,890,865,705,189,985,471,828,905,90,558,687,594,910,608,599,337,983,615,715,410,535,613,695,288,962,308,690,945,93,386,718,973,241,765,153,216,579,323,463,11,223,492,596,124,90],[1186,451,63,790,508,816,316,464,501,594,416,800,626,703,883,1002,764,199,585,871,694,143,440,359,596,442,573,78,28,687,159,555,480,564,335,979,370,993,433,862,929,191,652,898,236,877,242,990,66,818,204,750,951,986,100,890,418,15,958,788,692,459,685,162,14,11,483,726,346,906,578,266,87,572,506,666,792,738,998,848,546,192,941,840,169,383,720,929,740,20,60,422,822,735,926,178,88,752,894,425],[1649,815,33,78,729,529,734,511,257,722,702,146,257,985,328,768,710,390,687,440,400,89,204,212,815,472,732,893,214,617,660,853,422,683,273,493,554,349,995,802,61,687,290,660,14,608,418,714,988,96,144,730,527,338,285,332,800,1007,568,1005,614,570,200,378,244,815,862,788,154,199,932,557,876,564,208,880,162,616,584,140,54,70,213,572,398,488,246,540,485,156,887,442,717,429,810,303,234,14,433,730],[1204,356,278,421,262,828,291,415,434,217,897,831,629,100,745,369,578,333,252,406,480,129,838,539,901,990,832,477,995,255,198,188,953,818,600,206,636,233,611,412,793,850,233,764,941,320,124,861,644,366,257,466,837,85,995,728,66,817,196,403,414,736,581,358,896,523,554,522,99,507,276,234,699,852,988,630,162,102,482,148,458,81,604,638,157,589,356,565,748,894,958,153,972,881,501,858,747,397,722,836],[1247,989,60,935,831,38,908,983,483,732,122,283,803,68,911,950,648,610,857,386,494,157,529,809,29,372,657,118,759,722,944,347,701,346,273,522,726,523,847,199,245,311,825,38,370,726,331,1008,326,178,736,163,678,608,962,697,970,961,157,72,673,91,409,716,779,24,228,847,537,418,37,772,719,204,153,79,272,474,429,941,994,156,94,662,106,398,701,66,701,848,128,717,281,880,423,50,894,994,888,774],[1403,267,888,111,461,31,533,75,495,952,1006,480,450,90,132,546,830,176,955,522,14,73,581,286,295,994,678,180,978,908,296,722,165,174,824,968,196,699,34,681,993,30,503,434,463,978,322,635,144,267,499,148,683,70,776,968,407,445,490,375,343,776,88,851,293,254,161,479,943,537,150,278,558,996,702,363,964,367,988,98,976,830,588,1001,890,355,312,287,142,144,1005,827,263,435,20,546,31,172,15,316],[1700,507,584,599,493,629,304,447,986,635,887,304,455,466,296,335,163,598,965,647,732,960,816,337,385,827,873,406,341,878,64,382,376,638,324,211,257,618,1001,233,243,878,528,688,686,166,366,191,106,321,180,180,623,987,508,350,156,371,98,839,240,152,211,958,780,525,159,28,134,502,603,719,371,473,750,399,629,106,581,725,769,751,896,734,80,394,74,578,107,162,407,337,304,961,637,426,476,139,444,952],[1632,390,662,344,853,754,734,825,850,305,540,961,398,778,685,821,514,101,741,612,253,139,291,899,90,919,667,908,48,454,851,21,834,855,356,677,599,80,492,791,727,375,94,467,143,121,278,648,212,10,602,455,491,883,696,923,792,353,821,182,797,14,194,973,859,892,641,800,962,475,933,31,192,17,488,678,128,109,668,682,461,260,127,942,133,165,855,916,861,18,440,648,23,624,612,224,858,595,367,810],[1413,290,831,947,650,662,615,120,761,273,793,212,523,262,496,646,770,693,904,621,701,335,611,66,301,565,633,150,502,990,302,905,622,476,194,614,128,799,725,879,414,860,433,927,464,919,915,224,954,162,835,997,839,789,406,482,344,29,974,837,361,267,84,973,733,268,930,851,57,997,72,813,847,847,730,301,108,987,868,52,491,45,391,672,824,787,145,159,806,109,986,509,366,412,825,441,670,745,634,69],[1733,48,872,921,885,944,564,983,273,422,377,755,458,759,417,272,536,552,773,685,1004,101,536,360,503,351,144,163,86,768,222,160,807,84,71,34,18,626,1008,634,38,727,379,838,828,138,453,355,681,216,382,27,308,908,377,153,250,863,307,678,622,871,181,771,298,242,795,658,210,145,282,591,863,1003,419,681,132,214,378,155,421,102,172,71,353,891,214,945,745,863,613,357,77,784,470,717,369,255,365,569],[1392,990,502,596,983,264,619,105,468,340,250,231,432,412,292,775,294,849,710,29,54,666,728,473,792,188,180,503,785,536,415,518,516,907,104,489,161,66,937,972,396,177,193,170,932,828,288,568,667,988,939,63,996,1009,527,131,187,697,976,314,575,381,823,433,631,269,265,134,325,192,96,63,711,280,224,985,98,502,543,107,832,472,512,171,471,29,644,1000,69,610,305,634,334,470,58,955,729,313,431,397],[1848,518,450,548,140,16,524,580,860,409,29,683,224,531,196,685,903,830,28,962,430,675,938,754,135,338,51,854,993,473,593,182,333,34,721,815,392,587,737,243,338,756,916,552,629,102,580,874,274,598,178,694,263,459,791,388,787,184,584,123,647,168,295,322,544,358,479,926,287,206,159,616,304,417,158,924,861,728,140,125,668,309,162,921,758,943,651,887,469,226,1000,459,736,286,771,270,634,241,186,912],[1438,688,518,84,95,18,350,947,89,480,414,747,131,566,11,879,851,652,757,311,220,99,760,946,375,873,206,352,104,735,254,884,413,114,958,850,474,298,139,553,768,544,291,890,100,644,111,294,286,210,595,497,300,697,785,17,560,334,359,655,59,955,881,814,411,829,654,876,469,784,419,579,670,52,811,112,686,913,396,315,465,981,154,107,668,929,115,571,253,816,216,654,762,87,458,163,258,455,381,717],[1230,791,638,241,185,440,343,214,695,730,519,150,53,663,248,64,934,705,625,178,511,183,174,263,612,623,769,860,68,140,919,639,273,899,870,449,329,203,1005,14,275,514,507,671,519,745,725,443,792,692,963,293,865,128,899,819,93,658,21,151,140,930,132,756,171,992,195,491,537,542,847,155,46,344,816,907,431,883,340,565,565,646,849,772,116,738,581,199,738,592,692,868,864,814,614,25,148,151,858,675],[1684,696,172,71,382,978,968,156,203,651,711,758,287,902,872,393,630,443,934,358,25,616,569,231,420,173,247,558,667,95,575,340,133,738,754,858,58,712,356,604,705,57,352,982,950,567,717,922,1000,641,271,368,247,830,589,1009,345,178,557,1002,616,475,685,91,555,781,939,955,483,285,549,179,685,892,503,977,449,563,241,791,194,502,149,784,674,81,783,362,601,331,706,207,796,381,289,693,152,570,638,978],[1199,178,499,225,412,344,544,203,897,775,984,82,620,476,208,284,899,981,988,490,302,685,40,440,408,671,123,903,231,752,223,771,272,712,986,674,398,872,867,286,638,841,710,248,659,908,874,548,879,853,381,524,528,411,306,926,72,772,171,645,514,384,759,128,86,87,792,827,950,649,103,578,832,803,816,834,53,680,372,922,875,95,788,393,496,85,662,910,847,823,898,703,198,647,821,626,724,955,443,16],[1595,888,584,768,33,742,592,76,765,307,341,630,392,471,366,879,546,18,131,735,183,19,428,723,1008,591,340,723,536,125,81,472,356,656,231,379,740,813,798,495,110,129,116,493,590,824,714,479,832,835,204,357,845,975,71,195,556,753,908,435,220,980,897,566,978,118,936,708,274,724,546,726,195,1004,209,127,818,265,948,992,91,143,339,278,460,400,463,358,495,714,783,706,36,671,262,356,131,540,406,395],[1255,942,464,791,936,663,261,744,271,199,78,704,684,408,324,134,150,129,483,636,833,256,684,211,269,936,557,743,819,954,480,63,238,934,197,165,940,448,251,201,637,320,895,312,70,209,788,210,328,261,188,504,860,862,705,471,141,605,204,950,901,675,355,129,951,894,636,881,332,878,72,312,540,309,614,600,508,392,800,179,996,331,25,198,535,72,659,666,667,854,958,910,871,656,382,812,540,1008,36,215],[1229,98,517,758,398,473,348,248,207,491,769,193,164,784,381,689,847,383,698,856,579,646,757,792,644,129,594,175,479,620,380,698,61,239,446,801,702,137,391,899,618,151,435,772,277,158,803,466,883,491,313,452,480,412,234,114,883,171,631,352,133,1001,40,184,582,477,327,274,604,709,516,564,202,293,678,821,793,823,278,667,305,581,109,775,983,686,231,856,847,853,550,970,196,581,145,769,400,814,33,994],[1514,891,900,57,526,920,869,310,733,137,967,380,60,418,145,385,94,367,583,931,210,123,244,396,694,731,507,84,535,531,420,391,764,662,438,281,572,649,933,648,776,890,18,826,650,506,201,87,215,774,1008,767,888,242,153,924,315,1003,999,841,524,761,222,630,414,1002,253,328,642,176,966,760,408,327,577,49,823,120,126,28,237,476,785,467,61,280,733,366,273,722,549,139,826,761,112,230,754,355,548,738],[1523,857,488,920,174,407,311,339,518,427,357,97,246,484,906,649,754,629,1005,370,694,545,851,510,648,953,730,744,299,620,472,811,819,951,73,983,348,375,312,208,144,11,647,380,485,543,19,582,515,367,942,199,254,783,51,892,79,771,627,368,733,441,521,543,734,584,868,425,949,523,975,84,524,613,806,352,498,168,276,1003,525,560,544,769,685,585,1003,754,698,972,112,774,404,623,659,128,198,517,543,489],[1383,509,563,249,464,712,591,304,870,209,650,385,759,184,496,434,112,489,179,152,452,633,916,198,247,565,668,787,73,202,266,797,53,172,36,859,874,969,153,734,168,793,461,917,968,299,342,422,778,863,564,572,486,471,112,75,26,771,852,441,315,461,581,358,623,607,207,839,567,350,563,725,486,366,633,444,655,317,208,775,522,762,690,998,575,144,416,592,905,258,375,210,709,946,910,674,896,107,503,453],[1801,408,520,276,764,143,62,761,802,260,879,666,364,911,1007,930,45,413,864,941,661,581,493,713,870,394,377,756,491,871,199,633,269,709,251,376,195,303,479,339,905,348,996,260,249,993,180,285,396,34,568,399,605,51,102,465,435,470,563,269,683,752,244,942,804,486,660,341,779,130,22,675,468,360,277,60,343,447,687,81,823,245,823,770,638,915,578,416,727,131,675,752,226,261,37,20,737,687,703,859],[1808,715,524,618,418,143,20,103,932,697,175,745,284,340,505,912,597,73,670,315,547,335,409,763,587,436,125,666,114,818,515,263,875,381,223,283,514,233,729,436,920,246,523,546,576,19,449,163,434,109,820,971,787,220,724,716,646,839,724,750,999,230,356,217,601,569,842,458,793,561,884,55,797,398,592,363,759,383,869,535,834,679,497,963,889,563,669,878,745,736,970,86,956,316,293,899,876,478,347,11],[1382,574,56,169,314,638,874,415,11,85,940,836,755,427,789,986,333,801,854,68,879,167,496,825,473,780,66,691,600,756,692,971,320,91,482,976,719,347,381,73,774,311,251,519,81,382,848,756,525,44,814,394,201,300,561,665,422,618,698,364,364,381,326,26,814,798,992,523,487,363,938,252,16,179,113,439,904,951,185,419,986,341,804,529,984,707,184,748,315,873,103,21,596,419,37,400,559,371,265,389]]

思路一:暴力DFS–不推荐力扣133ms,思路二3ms

BFS和DFS搜索汇总(未完待续)相关推荐

  1. 织梦常用标签汇总-------未完待续

    网站首页常用标记 <meta http-equiv="Content-Type" content="text/html; charset={dede:global. ...

  2. linux引数列项目过长,Linux 命令个人总结====== 未完待续 个人认为比较重要

    Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789]命令.文件. [选项参数]: 数字"1"表示用户命令 ...

  3. 《图解 HTTP》读书笔记(未完待续)

    ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...

  4. 刚子扯谈:未完待续的微信5.0

    「未完待续的微信」 无独有偶,很多思想上的爆发往往就是一瞬间,我是有特别感觉的!感觉其实更多的像是思想涌泉,而涌泉不会持续太久!影响感觉器官的有万万千,可以是一个动作.一个眼色.哪怕是眨眨眼眉,我们的 ...

  5. CTF论剑场(web) write up 未完待续

    CTF论剑场(web) write up web26 直接给你一串代码 <?php $num=$_GET['num']; $str=$_GET['str']; show_source(__FIL ...

  6. 2018.10.1(这不仅是一篇日记,也是mac使用心得整理,未完待续……)

    今天是国庆节,祝祖国母亲生日快乐. 今天在ucl正式上课了,还去蹭了一节非监督学习的课.挺好. 9月20+号买的mac,通过船运,终于到手了.非常高兴. 晚上回家去中国城买了一些食材自己做.一半的花生 ...

  7. 实现2020年TI杯大学生电子设计竞赛F题简易无接触温度测量、身份识别与口罩检测装置(未完待续)

    声明 本文仅在CSDN发布,其他均为盗版.请支持正版! 正版链接: https://blog.csdn.net/meenr/article/details/109298042 本文目录 *实现2020 ...

  8. 《今日简史》读书笔记(未完待续)

    <今日简史>读书笔记(未完待续) 这本书是尤瓦尔·赫拉利的简史三部曲的最后一本,前2本书是<未来简史>和<人类简史>.根据豆瓣上网友的评价,这本书是尤瓦尔·赫拉利写 ...

  9. CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)

    目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...

  10. Paper之BigGAN:ICLR 2019最新论文《LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS》(未完待续)

    Paper之BigGAN:ICLR 2019最新论文<LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS> ...

最新文章

  1. 模态框获取id一直不变,都是同一个id值
  2. c语言单词翻译大全,c语言单词翻译
  3. openjdk platform binary 内存_记一次内存溢出导致的生产事故
  4. rest-framework-权限组件
  5. 【渝粤教育】电大中专新媒体营销实务 (16)作业 题库
  6. GetWeApp聊天室 代码(微信小程序)
  7. Quartz 2 定时任务(一):基本使用指南
  8. VMware 12 专业版永久许可证密钥
  9. jboss forge整合 hibersap
  10. 尝试docker1.12内置swarm
  11. java工作愿景_2018年年终总结以及来年目标愿景
  12. 个人电脑php漏洞怎么修复,PHP版 6.0 漏洞 要怎么修复
  13. 笨鸟的平凡之路-KETTLE的安装
  14. 2023 IEEE Fellow出炉:唐立新、宗成庆、朱军、姬水旺、李佳等入选
  15. 如何在Windows server 2012中设置文件夹共享和访问
  16. poj3349——Snowflake Snow Snowflakes
  17. 使用微软官方工具下载安装Windows10系统
  18. Java实验——定义一个表示学生信息的类Student,要求如下:
  19. Hash MSDN MD4 MD5 SHA1 CRC 详细解释
  20. LeetCode岛屿最大面积

热门文章

  1. 百度网盘提取码_利用审查元素自定义百度网盘提取码教程 无需工具
  2. SSD的TRIM原理及实践
  3. 什么是视频网站CDN呢?视频网站使用了视频CDN有什么优势?
  4. 单工,半双工,全双工区别以及TDD和FDD区别
  5. 三星:大小屏QLED和OLED两手都要抓,都要硬
  6. 谈中国分布式数据库商业之路:OSM与DB-Inside
  7. 工商数据返回:“企业不存在或企业信息未更新”,法定代表人验证失败的解决方法
  8. 计算机病毒的防治方法不包括,计算机病毒的防治方法
  9. 服务器网站兼容不正常,升级为IE11后兼容模式设置,部分网站无法正常浏览,兼容模式仍然无法正常访问部分网站的解决办法...
  10. 猿人学web端爬虫攻防大赛赛题解析_第六题:js 混淆 - 回溯