packagejz.bm;importjava.io.PushbackInputStream;importjava.lang.reflect.Array;importjava.util.ArrayList;importjava.util.Arrays;publicclass bm6 {/*** BM55 没有重复项数字的全排列*/ArrayList<ArrayList<Integer>> res =newArrayList<>();publicArrayList<ArrayList<Integer>>permute(int[] num){if(num.length ==0){return res;}Arrays.sort(num);boolean[] used =newboolean[num.length];Arrays.fill(used,false);dfs(num, used,newArrayList<>());return res;}privatevoiddfs(int[] num,boolean[] used,ArrayList<Integer> list){if(list.size()== num.length){res.add(newArrayList<>(list));}else{for(int i =0; i < num.length; i++){if(used[i]){continue;}used[i]=true;list.add(num[i]);dfs(num, used, list);used[i]=false;list.remove(list.size()-1);}}}/*** BM56 有重复项数字的全排列*/publicArrayList<ArrayList<Integer>>permuteUnique(int[] num){if(num.length ==0){return res;}Arrays.sort(num);boolean[] used =newboolean[num.length];Arrays.fill(used,false);dfs56(num, used,newArrayList<>());return res;}privatevoiddfs56(int[] num,boolean[] used,ArrayList<Integer> list){if(list.size()== num.length){res.add(newArrayList<>(list));}else{for(int i =0; i < num.length; i++){if(used[i]){continue;}if(i >0&& num[i]== num[i -1]&& used[i -1]){continue;}used[i]=true;list.add(num[i]);dfs56(num, used, list);used[i]=false;list.remove(list.size()-1);}}}/*** BM57 岛屿数量*/publicint solve (char[][] grid){int m = grid.length;if(m ==0){return0;}int n = grid[0].length;if(n ==0){return0;}int res =0;for(int i =0; i < m; i++){for(int j =0; j < n; j++){if(grid[i][j]=='1'){res++;dfs57(grid, m, n, i, j);}}}return res;}privatevoiddfs57(char[][] grid,int m,int n,int i,int j){grid[i][j]='0';if(i -1>=0&& grid[i -1][j]=='1'){dfs57(grid, m, n, i -1, j);}if(i +1< m && grid[i +1][j]=='1'){dfs57(grid, m, n, i +1, j);}if(j -1>=0&& grid[i][j -1]=='1'){dfs57(grid, m, n, i, j -1);}if(j +1< n && grid[i][j +1]=='1'){dfs57(grid, m, n, i, j +1);}}/*** BM58 字符串的排列*/ArrayList<String> strings =newArrayList<>();publicArrayList<String>Permutation(String str){if(str ==null||"".equals(str)){return strings;}char[] chars = str.toCharArray();Arrays.sort(chars);boolean[] used =newboolean[chars.length];Arrays.fill(used,false);dfs58(chars, used,newStringBuilder());return strings;}privatevoiddfs58(char[] chars,boolean[] used,StringBuilder stringBuilder){if(stringBuilder.length()== chars.length){strings.add(newString(stringBuilder));}else{for(int i =0; i < chars.length; i++){if(used[i]){continue;}if(i >0&& chars[i]== chars[i -1]&& used[i -1]){continue;}stringBuilder.append(chars[i]);used[i]=true;dfs58(chars, used, stringBuilder);used[i]=false;stringBuilder.deleteCharAt(stringBuilder.length()-1);}}}/*** BM60 括号生成*/ArrayList<String> arrayList =newArrayList<>();publicArrayList<String> generateParenthesis (int n){if(n ==0){return arrayList;}dfs60(n,0,0,newStringBuilder());return arrayList;}privatevoiddfs60(int n,int left,int right,StringBuilder stringBuilder){if(left == n && right == n){arrayList.add(newString(stringBuilder));return;}if(left < n){stringBuilder.append("(");dfs60(n, left +1, right, stringBuilder);stringBuilder.deleteCharAt(left + right);}if(right < left && right < n){stringBuilder.append(")");dfs60(n, left, right +1, stringBuilder);stringBuilder.deleteCharAt(left + right);}}/*** BM61 矩阵最长递增路径*/int max =0;publicint solve (int[][] matrix){int m = matrix.length;int n = matrix[0].length;//这题dfs不需要记录visited, 因为能走的路径是单向的for(int i =0; i < m; i++){for(int j =0; j < n; j++){dfs61(matrix, m, n, i, j,1);}}return max;}privatevoiddfs61(int[][] matrix,int m,int n,int i,int j,int count){if(i -1>=0&& matrix[i -1][j]> matrix[i][j]){max =Math.max(count +1, max);dfs61(matrix, m, n, i -1, j, count +1);}if(i +1< m && matrix[i +1][j]> matrix[i][j]){max =Math.max(count +1, max);dfs61(matrix, m, n, i +1, j, count +1);}if(j -1>=0&& matrix[i][j -1]> matrix[i][j]){max =Math.max(count +1, max);dfs61(matrix, m, n, i, j -1, count +1);}if(j +1< n && matrix[i][j +1]> matrix[i][j]){max =Math.max(count +1, max);dfs61(matrix, m, n, i, j +1, count +1);}}}
题目代码
Welcome to index.php
<?php
//flag is in flag.php
//WTF IS THIS?
//Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95
//And Crack It!
class Modifier {protected $var;publi…