四色问题,请大家指教

gongbao

宇宙最最知名园友
最大赞力
0.00
当前赞力
100.00%
经典四色问题,用贪心法, java求解,我的不对,请大家帮忙挑挑毛病哈,又卡住了…… 谢谢!
代码:
package T12;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class N37 {

    private static void fourColorMap(String dir) {
        try {   // read in file
            BufferedReader in = new BufferedReader(new FileReader(dir));
            String line = "";
            // construct border[j], land & color
            int numLand = Integer.parseInt(in.readLine());
            int[] land = new int[numLand];
            // init land
            for(int i = 0; i < land.length; i ++) {
                land_i = 0;
            }
            int numBorder = Integer.parseInt(in.readLine());
            boolean[][] border = new boolean[numBorder][numBorder];
            // init border all false
            for(int i = 0; i < border.length; i ++) {
                for(int j = 0; j < border.length; j ++) {
                    border[j] = false;
                }
            }
            // read in borders from file
            for(int i = 0; i < border.length; i ++) {
                for(int j = 0; j < border.length; j ++) {
                    while((line = in.readLine()) != null) {
                        int m = Integer.parseInt(String.valueOf(line.charAt(0)));
                        int n = Integer.parseInt(String.valueOf(line.charAt(1)));
                        //System.out.println("m = " + m + ", n = " + n);
                        border[m][n] = true;
                    }
                }
            }
            // init color array, 4 colors
            boolean[] color = new boolean[4];
            for(int i = 0; i < color.length; i ++) {
                color_i =  false;
            }
    
            int n = land.length;
            for(int i = 0; i < n; i ++) {
                for(int j = 0; j < n; j ++) {
                    if(border[j] && land[j] != 0) {
                        color[land[j]] = true;
                    }
                }
                for(int j = 1; j < color.length; j ++) {
                    if(color[j] == false) {
                        land_i = j;
                        break;
                    }
                }
            }
            print(land);
//    
//            for(int i = 0; i < color.length; i ++) {
//                System.out.println(color);
//            }
//            for(int i = 0; i < border.length; i ++) {
//                for(int j = 0; j < border.length; j ++) {
//                    System.out.print(border[j] + " ");
//                }
//            }
//            System.out.println("land size " + land.length + " border: " + border.length);

        } catch(IOException e) {
            e.printStackTrace(System.err);
                System.exit(1);
        }
    }

    public static void main(String[] args) {

        String DIR = "src/T12/map";
        fourColorMap(DIR);
    }

    private static void print(int[] a) {
        for(int i = 0; i < a.length; i ++) {
            System.out.print(a + " ");
        }
    }
}
"src/T12/map"
文件map。
4 - number of lands, 5 - borders, 01 代表land 0 和land 1有border 。。。。。
代码:
4
5
01
02
12
13
23
 
最后编辑: 2018-02-17

gongbao

宇宙最最知名园友
最大赞力
0.00
当前赞力
100.00%


文件表述的4个国家大致是这么个位置吧?
 

Similar threads

家园推荐黄页

家园币系统数据

家园币池子报价
家园币最新成交价
家园币总发行量
加元现金总量
家园币总成交量
家园币总成交价值

池子家园币总量
池子加元现金总量
池子币总量
1池子币现价
池子家园币总手续费
池子加元总手续费
入池家园币年化收益率
入池加元年化收益率

微比特币最新报价
毫以太币最新报价
微比特币总量
毫以太币总量
家园币储备总净值
家园币比特币储备
家园币以太币储备
比特币的加元报价
以太币的加元报价
USDT的加元报价

交易币种/月度交易量
家园币
加元交易对(比特币等)
USDT交易对(比特币等)
顶部