AtCoder ABC 016 A&B&C AtCoder - 016
private void solveA() {
int m = nextInt();
int d = nextInt();
out.print(m % d == 0 ? "YES" : "NO");
}
B - A±B Problem
private void solveB() {
int a = nextInt();
int b = nextInt();
int c = nextInt();
boolean p = a + b == c;
boolean m = a - b == c;
if (p && m) {
out.println("?");
} else if (!p && !m) {
out.println("!");
} else if (p && !m) {
out.println("+");
} else if (!p && m) {
out.println("-");
}
}
--Trouver la distance entre les sommets du graphe non orienté
Il est temps d'apprendre à le résoudre autrement que par la méthode Worshall Floyd. .. ..
private void solveC() {
int n = nextInt();
int m = nextInt();
int[] a = new int[m];
int[] b = new int[m];
int[][] graph = new int[n][n];
for (int i = 0; i < n; i++) {
//Remplissez avec MAX
Arrays.fill(graph[i], Integer.MAX_VALUE / 2);
//Le coût du déménagement est de 0
graph[i][i] = 0;
}
for (int i = 0; i < m; i++) {
a[i] = nextInt() - 1;
b[i] = nextInt() - 1;
//Créer une matrice adjacente
graph[a[i]][b[i]] = 1;
graph[b[i]][a[i]] = 1;
}
//Méthode Worshall Floyd
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
graph[j][k] = Integer.min(graph[j][k], graph[j][i] + graph[i][k]);
}
}
}
/*
*Frais de voyage de vous-même
* 1=ami
* 2=Un ami d'un ami
* 3=L'ami de l'ami d'un ami
* 4=Amis d'amis Amis d'amis ...
*Suite ci-dessous
*/
for (int i = 0; i < graph.length; i++) {
int res = 0;
for (int j = 0; j < graph.length; j++) {
res += graph[i][j] == 2 ? 1 : 0;
}
out.println(res);
}
}
Recommended Posts