国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

算法學習-倒水問題(bfs)

2019-11-08 19:34:01
字體:
來源:轉載
供稿:網友

倒水問題

/** * Created by oy on 2017/2/4. */public class Main { //需要的水體積 PRivate int find; //各個容器的容量 private int[] capacity; //中杯和小杯的剩余量 private boolean[][] vis; //是否找到 private boolean isHaveAns; //隊列 Node[] queue = new Node[100]; int begin = 0; int tail = 1;// Queue<Node> queue = new PriorityQueue<>(); public static void main(String[] args){ Main main = new Main(); main.vis = new boolean[6][6]; main.find = 4; main.capacity = new int[3]; main.capacity[0] = 6; main.capacity[1] = 3; main.capacity[2] = 1; main.bfs(); } private void bfs(){ Node node = new Node(); node.cup[0] = capacity[0]; vis[0][0] = true; queue[begin] = node; while(begin<tail) { changeWater(queue[begin++]); } if(!isHaveAns){ System.out.println("找不到方案"); } } private void changeWater(Node node){ int[] cup = node.cup; for(int i = 0; i< cup.length; i++){ for(int j = 0; j< cup.length; j++) { if(i!=j) if(fill(node,i,j)) return; } } } private boolean fill(Node node,int from,int to){ Node clone = node.clone(); int[] cup = clone.cup; if(cup[from] == 0||cup[to] == capacity[to]){ return false; } //倒水 int a = cup[from]; int b = cup[to]; int result = a + b; if(result>capacity[to]){ cup[from] = result - capacity[to]; cup[to] = capacity[to]; }else{ cup[from] = 0; cup[to] = result; } //找到了方案 if(clone.isFound()){ System.out.println("Find a condition"); clone.pre = node; for(Node n = clone;n!= null;n = n.pre){ for (int i : n.cup) System.out.print(i + " "); System.out.println(); } isHaveAns = true; return true; } //添加節點到隊列里面去 if (!vis[clone.cup[1]][clone.cup[2]]) { vis[clone.cup[1]][clone.cup[2]] = true; clone.pre = node; queue[tail++]=clone; } return false; } class Node{ Node pre = null; int[] cup = new int[3]; int depth; public boolean isFound(){ for(int i = 0;i<3;i++){ if(cup[i] == find){ return true; } } return false; } @Override public Node clone(){ Node node = new Node(); node.cup = cup.clone(); node.depth = depth; return node; } }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三台县| 南皮县| 和平县| 玛多县| 皋兰县| 贺兰县| 荥经县| 东城区| 鄂托克前旗| 札达县| 宜兴市| 伊金霍洛旗| 灌南县| 佛坪县| 宣汉县| 伊通| 甘德县| 南康市| 教育| 桓台县| 台南市| 禄劝| 沅江市| 安多县| 科技| 邢台县| 甘谷县| 边坝县| 海安县| 湟源县| 新兴县| 额济纳旗| 扶余县| 乳源| 望江县| 新源县| 乌兰浩特市| 通山县| 曲靖市| 班戈县| 上饶县|