P2524 Uim的情人节礼物·其之弐
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n= in.nextInt();
int a[]=new int[10];
String str= in.next();
int temp=1,flag=1,ans,out=1;
char s[]=str.toCharArray();
for(int i=0;i<n;i++)
a[i]=s[i]-48;
for(int i=n-2;i>=0;i--){
flag=flag*(temp++);
ans=0;
for(int j=i+1;j<n;j++){
if(a[j]<a[i])
ans++;
}
out=out+ans*flag;
}
System.out.println(out);
}
}
P2525 Uim的情人节礼物·其之壱
import java.util.Scanner;
public class Main {
public static void println(){
int flag=0;
for(int i=1;i<=n;i++)
if(a[i]!=0)
flag=1;
if(flag==0)
System.out.println("ERROR");
else{
for(int i=1;i<=n;i++)
System.out.print(a[i]+" ");
}
}
public static boolean check1(int temp,int f){
for(int i=1;i<temp;i++)
if(b[i]==f)
return false;
return true;
}
public static boolean check2(){
for(int i=1;i<=n;i++)
if(b[i]!=c[i])
return false;
return true;
}
public static void dfs(int temp){
if(temp>n){
if(check2()){
println();
System.exit(0);
}
for(int i=1;i<=n;i++)
a[i]=b[i];
return;
}
for(int i=1;i<=n;i++){
if(check1(temp,i)){
b[temp]=i;
dfs(temp+1);
}
}
}
static int a[];
static int b[];
static int c[];
static int n;
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
a=new int[11];
b=new int[11];
c=new int[11];
n= in.nextInt();
for(int i=1;i<=n;i++)
c[i]= in.nextInt();
dfs(0);
}
}