| ||||||||||
| 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 | |||||||||
Re:java 怎么总提交出错呢?谁帮帮我看看是不是代码 错了谢谢啊In Reply To:java 怎么总提交出错呢?谁帮帮我看看是不是代码 错了谢谢啊 Posted by:gedoua at 2009-08-01 15:03:17 > import java.io.*;
> import java.util.Scanner;
>
>
> public class Main{
> private static int n;
> private static char[][] board; //记录棋盘状态
> private static boolean[] place_C; //记录这列是否可以放旗子
> private static int count = 0; //方案数
> private static int numPlaced = 0; //已放旗子数目
> private static int k; //要放的旗子数目
>
> public static void main(String[] args) throws IOException {
> InputStreamReader isr = new InputStreamReader(System.in);
> BufferedReader br = new BufferedReader(isr);
> Scanner s = new Scanner(System.in);
> while(true) {
> n = s.nextInt();
> k = s.nextInt();
> if(n == -1 && k == -1)
> return;
> board = new char[n][n];
> place_C = new boolean[n];
> int r = 0;
> String test = br.readLine();
> while(test!=null) {
> for(int i=0; i<n; i++)
> board[r][i] = test.charAt(i);
> r++;
> if(r == n)
> break;
> test = br.readLine();
> }
> dfs(0);
> System.out.println(count);
> count = 0;
> }
> }
>
> public static boolean canPlace(int i, int j) {
> return !place_C[j] && board[i][j] == '#';
> }
>
>
> public static void dfs(int i) {
> if(numPlaced == k) {
> count++;
> return;
> }
> if(i >= n)
> return;
> int j;
> for(j=0; j<n; j++) {
> if(canPlace(i,j)) {
> place_C[j] = true;
> numPlaced++;
> dfs(i+1);
> place_C[j] = false;
> numPlaced--;
> }
> }
> dfs(i+1);
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator