import java.util.Scanner; public class 矩阵乘方 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); //N阶 int M = scanner.nextInt(); //M次幂 int[][] a = new int[N][N]; //用二维数组a接收矩阵A int[][] c = new
#include <bits/stdc++.h> #define M 1005 using namespace std; int n; char map1[M][M]; bool vis[M][M]; int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1}}; void dfs(int x,int y) { vis[x][y] = 1; for(int i = 0; i < 4; i++) { int dx = x + dir[i][0]; int dy =
传送门 思路: 题意大意:n条有向边,找出最大环. 我们发现,如果一个小朋友没有被任何人崇拜,那么他一定不位于环中.为此我们可以设置一个indug数组预处理.如果2被崇拜了那么indug[2]就加加,那么后续我们只需要dfs不为0的小朋友即可. 优化 可是遍历小朋友的话会有大量重复.比如1->3->5->1,我们遍历了1,那么其实3和5是不需要去管的对吧.所以就有了代码. #include <bits/stdc++.h> using namespace std; int vi
思路:从大到小枚举,判断其平方是否不重复 答案:9814072356 //水题 标题:平方十位数 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字. 这其中也有很多恰好是平方数(是某个数的平方). 比如:1026753849,就是其中最小的一个平方数. 请你找出其中最大的一个平方数是多少? 注意:你需要提交的是一个10位数字,不要填写任何多余内容. public class Main { public static void main(String[] args) { // TODO