| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Javaimport java.util.Scanner;
public class Main {
private static char[][] c;//记录信息
private static int sum;//总共的方案
private static int k;//棋盘的棋子个数
private static int n;//棋盘的大小
private static int m;//已放入棋盘的棋子数目
private static int[] visit;//每一列是否被放过
public static void dfs(int line) {
if(m==k) {
sum++;
return;
}
if(line>=n) {
return;
}
for(int j=0;j<n;j++) {
if((visit[j]==0)&&(c[line][j]=='#')){
visit[j]=1;
m=m+1;
dfs(line+1);
visit[j]=0;
m=m-1;
}
}
dfs(line+1);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while((n=in.nextInt())!=-1&&(k=in.nextInt())!=-1) {
c = new char[n][n];
sum=0;
m=0;
visit=new int[n];
for(int i=0;i<visit.length;i++) {
visit[i]=0;
}
for(int i=0;i<n;i++) {
String s = in.next();
char[] p = s.toCharArray();
for(int j=0;j<p.length;j++) {
c[i][j] = p[j];
}
}
dfs(0);
System.out.println(sum);
}
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator