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