国产探花免费观看_亚洲丰满少妇自慰呻吟_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; } }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 聊城市| 万源市| 成武县| 聂荣县| 乐东| 金堂县| 余庆县| 山东省| 盱眙县| 江永县| 尉犁县| 吉林省| 灌云县| 阿尔山市| 綦江县| 锡林郭勒盟| 武强县| 辰溪县| 和田市| 诏安县| 板桥市| 邛崃市| 平安县| 屏南县| 昌邑市| 来凤县| 德令哈市| 葫芦岛市| 东宁县| 肥西县| 方正县| 平陆县| 五峰| 化州市| 剑阁县| 慈溪市| 汉寿县| 林芝县| 潞城市| 舞钢市| 叙永县|