第一题:
import java.util.Scanner;
public class Main {
static int count=0;
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int num[]=new int[1000];
int index=0;
while(input.hasNext()){
int n=input.nextInt();
String s[]=new String[n];
for(int i=0;i<n;i++){
s[i]=input.next();
}
boolean flag[]=new boolean[6];
backtrack(0,n,flag,s);
num[index]=count;
count=0;
index++;
}
for(int i=0;i<index;i++){
System.out.println(num[i]);
}
}
public static void backtrack(int i,int n,boolean flag[],String s[]){
if(i==n){
count++;
}else{
for(int j=0;j<s[i].length();j++){
int p=Integer.parseInt((String)(s[i].charAt(j)+""));
if(!flag[p]){
flag[p]=!flag[p];
backtrack(i+1,n,flag,s);
flag[p]=!flag[p];
}
}
}
}
}

第二题:
import java.util.Scanner;
public class Main{
static int count=0;
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int num[]=new int[10000];
int index=0;
while(input.hasNext()){
int A=input.nextInt();
int B=input.nextInt();
   int begin=A/19;
            if(begin*19<A)
                begin++;
            while(((begin+A)%5!=0)&&(begin+A)<=B){
                begin++;
            }
   int end=A/9;
   for(int i=begin;i<=end;i=i+5){
   if((A+i<=B)&&((A+i)%5==0)){
   count++;
   }
   }
   num[index]=count;
   count=0;
   index++;
}
for(int i=0;i<index;i++){
System.out.println(num[i]);
}
}
}

第三题:
import java.util.Scanner;


public class Main {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int num[]=new int[10000];
int index=0;
while(input.hasNext()){
int count=0;
int S=input.nextInt();
int r=(int)Math.sqrt((double)S);
for(int i=0;i<=r;i++){
int p=(int)Math.sqrt(S-i*i);
int sum=i*i+p*p;
if(sum==S){
if(i==0||p==0){
count+=2;
}else{
count+=4;
}
}
}
num[index]=count;
index++;
}
for(int i=0;i<index;i++){
System.out.println(num[i]);
}
}
}