解决方法:
((7! ) / 2)
import java.util.HashSet;
import java.util.Set;
public class Main{
public static Set strArr = new HashSet<>();
public static void main(String[] args) {
String str = "LANQIAO";
char[] chars = str.toCharArray();
fullSort(chars, 0, chars.length);
System.out.print(strArr.size());
}
public static void fullSort(char[] arr, int start, int end){
if(start == end-1){
strArr.add(new String(arr));
}
for(int i = start; i < end; i++){
swap(arr, i, start);
fullSort(arr, start+1, end);
swap(arr, i, start);
}
}
public static void swap(char[] arr, int i, int j){
char tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
import java.util.HashSet;
import java.util.Set;
import java.util.Stack;
public class Main{
public static Set strArr = new HashSet<>();
public static void main(String[] args) {
String str = "()()()()";
char[] chars = str.toCharArray();
fullSort(chars, 0, chars.length-1);
System.out.print(strArr.size());
}
public static boolean judge(char[] arr){
Stack stack = new Stack<>();
for(int i = 0; i < arr.length; i++){
if(arr[i] == '('){
stack.push(arr[i]);
} else if(arr[i] == ')' && !stack.empty()){
stack.pop();
} else {
stack.push(')');
break;
}
}
if(stack.empty()){
return true;
}
return false;
}
public static void fullSort(char[] arr, int start, int end){
if(start == end){
if(judge(arr))
strArr.add(new String(arr));
}
for(int i = start; i <= end; i++){
swap(arr, i, start);
fullSort(arr, start+1, end);
swap(arr, i, start);
}
}
public static void swap(char[] arr, int i, int j){
char tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
无向连通图最少有n-1条边,故答案为2018
1MB = 1024KB
1KB = 1024B
结果:12.5 * 1024 * 1024 = 13107200
import java.util.Arrays;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] k = new int[3];
int n = scanner.nextInt();
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
int count = 0;
k[0] = a;
k[1] = b;
k[2] = c;
Arrays.sort(k);
int min = k[0]-1;
count += min;
for(int i = min+1; i <= n; i++){
if(i % a != 0 && i % b != 0 && i % c != 0){
count++;
}
}
System.out.println(count);
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
char[] ch = str.toCharArray();
List list = new ArrayList<>();
for(int i = 0; i < ch.length; i++){
if((char)(ch[i] + 3) > 'z'){
list.add((char)(ch[i] + 2 - 'z' + 'a'));
} else {
list.add((char)(ch[i]+3));
}
}
for (char c: list) {
System.out.print(c);
}
}
}
import java.util.Scanner;
public class Main {
public static int[][] spiralOrder(int n,int m){
int[][] num = new int[n][m];
int row=0,col=0;
num[row][col]=1;
int upBound=0;
int rightBound=num[0].length-1;
int leftBound=0;
int downBound=num.length-1;
int temp=1;
while(true){
for(int i=leftBound;i<=rightBound;i++)
num[upBound][i]=temp++;
if(++upBound>downBound) break;
for(int i=upBound;i<=downBound;i++)
num[i][rightBound]=temp++;
if(--rightBound=leftBound;--i)
num[downBound][i]=temp++;
if(--downBound=upBound;--i)
num[i][leftBound]=temp++;
if(++leftBound>rightBound) break;
}
return num;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int r = sc.nextInt();
int c = sc.nextInt();
int[][] list = new int[n][m];
list = spiralOrder(n,m);
System.out.print(list[r-1][c-1]);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int[][] ch =new int[m+2][n+2];
for (int i =1 ; i <= n ;i++){
ch[1][i]=n-i+1;
}
for(int i=2;i<=m;i++){
if((i&1)==1){
for(int j=n;j>=1;j--)
ch[i][j]=(ch[i-1][j-1]+ch[i][j+1])%1000;
}else{
for(int j=1;j<=n;j++)
ch[i][j]=(ch[i-1][j+1]+ch[i][j-1])%1000;
}
}
int result= (m&1)==1? ch[m][1]:ch[m][n];
System.out.println(result);
}
}