2024.3.8
记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
import java.awt.Checkbox;
import java.awt.PageAttributes.OriginType;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.math.MathContext;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.TreeMap;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Scanner scanner=new Scanner(System.in);
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw1=new PrintWriter(System.out);
String[] aStrings=br1.readLine().split(" ");
dian=Integer.parseInt(aStrings[0]);
int a=Integer.parseInt(aStrings[1]);
color=Integer.parseInt(aStrings[2]);
aa=new int[dian+1][dian+1];
bb=new int[dian+1];
int b;
for(b=0;b<a;b++) {
String[] bStrings=br1.readLine().split(" ");
int c=Integer.parseInt(bStrings[0]);
int d=Integer.parseInt(bStrings[1]);
aa[c][d]=aa[d][c]=1;
}
dfs(1);
System.out.println(answer);
}
public static int dian;
public static int color;
public static int[][] aa;
public static int[] bb;
public static long answer=0;
public static void dfs(int a) {
if(a>dian) {
answer++;
return;
}
int b,c;
for(b=1;b<=color;b++) {
bb[a]=b;
if(check(a)==1) {
dfs(a+1);
}
bb[a]=0;
}
}
public static int check(int a) {
int b;
for(b=1;b<=dian;b++) {
if(aa[a][b]==1&&bb[a]==bb[b]) {
return 0;
}
}
return 1;
}
}