1. 程式人生 > >8 皇帝問題(皇帝還是比較牛逼) - 演算法

8 皇帝問題(皇帝還是比較牛逼) - 演算法

一、問題描述
有一個 8 * 8 的棋盤,和 8 個皇后,皇后的攻擊規則:任意一個皇后可以攻擊同一行、同一列、正反對角線上的皇后。問題:如何擺放8個皇后,可以讓她們互相不攻擊。
提示:一行或一列只能放一個皇后。

二、解題思路
採用深度優先遍歷方式,從第0行開始,逐行檢視每一列中那些位置可以擺放皇后,也就是每一行需要掃描8列,而且還需要判斷當前位置和擺放過皇后的位置是否符合規則。

三、DFS(深度優先搜尋)
套路:

// 引數n:問題規模
void dfs(int n){
// dfs 出口
 if(){
 ...
 return;
 }

// dfs body
處理當前內容

// dfs 遞迴
處理當前內容與子問題的關係

}

二叉樹遍歷

package com.daxiong.day6;

/**
 *          1
 *      2       3
 *    4   5   6   7
 * */
public class TowTree {

    private static int[] tree = {0,1,2,3,4,5,6,7};  // 第0為站位,不參與實際問題

    public static void main(String[] args) {
        dfs(1);
    }

    // 二叉樹前序遍歷
    public static void dfs(int root){

        if
(root*2 >= 8){ System.out.println(tree[root]); return; } System.out.println(tree[root]); dfs(root*2); // 左子樹 dfs(root*2+1); // 右子樹 } }

四、程式碼實現

package com.daxiong.day6;

/**
 * 8 皇后問題
 * */
public class EightQueen {

    // 8 個皇后
    private
static int SIZE = 8; // 存放規則:索引(0-7)表示行,索引對應的值(0-8)表示該行可以存放皇后的列值,以此構建一個類似二位陣列 private static int[] queen = new int[SIZE]; // 方案數 private static int step = 0; public static void main(String[] args) { dfs(0); } /** * @fun 判斷當前行可以存放皇后的列 * @param key : 當前行(可以看作座標中的 X1) * @param value : 當前行對應的列值(可以看作座標中X1對應的值Y1) * @return : 當前行對應的列是否可以存放皇后 */ public static boolean isOk(int key, int value) { for (int i = 0; i < key; i++) { if (i == key || queen[i] == value || (i - key == queen[i] - value) || (key - i == queen[i] - value)) { return false; } } return true; } /** * @fun dfs,深度遍歷遞迴函式 * @param row : 行掃描,問題規模 */ public static void dfs(int row) { if (row == SIZE) { step++; print(step); return; } for (int i = 0; i < SIZE; i++) { if (isOk(row, i)) { queen[row] = i; dfs(row + 1); } } } /** * @fun 列印 8 皇后可行方案 * @param step : 第幾個方案 */ public static void print(int step) { System.out.println("方案(" + step + "):"); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { if (queen[i] == j) { // 皇后位置 System.out.print(" @ "); } else { // 非皇后 System.out.print(" * "); } } System.out.println(); } } }

五、答案
共有 92 中方案:

方案(1):
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
方案(2):
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
方案(3):
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  @  *  *  *  *  * 
方案(4):
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
方案(5):
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
方案(6):
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  *  @  *  *  *  * 
方案(7):
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
方案(8):
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
方案(9):
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
方案(10):
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
方案(11):
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
方案(12):
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
方案(13):
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(14):
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(15):
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
方案(16):
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
方案(17):
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  @  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(18):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
方案(19):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
方案(20):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  @  *  *  *  * 
方案(21):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  @  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
方案(22):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
方案(23):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
方案(24):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
方案(25):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
方案(26):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(27):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  *  @  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
方案(28):
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
方案(29):
 *  *  *  @  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(30):
 *  *  *  @  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
方案(31):
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
方案(32):
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
方案(33):
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
方案(34):
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
方案(35):
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(36):
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
方案(37):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
方案(38):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
方案(39):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
方案(40):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
方案(41):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(42):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
方案(43):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
方案(44):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  *  @  *  *  * 
方案(45):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
方案(46):
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  @  *  *  * 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(47):
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
方案(48):
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(49):
 *  *  *  *  @  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
方案(50):
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
方案(51):
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
方案(52):
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  @  *  *  *  *  * 
方案(53):
 *  *  *  *  @  *  *  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 @  *  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
方案(54):
 *  *  *  *  @  *  *  * 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  *  *  *  *  *  *  @ 
 *  @  *  *  *  *  *  * 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
方案(55):
 *  *  *  *  @  *  *  * 
 *  *  @  *  *  *  *  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  *  @  * 
 *  @  *  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  *  @  *  *  *  * 
方案(56):
 *  *  *  *  @  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  @  *  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  *  *  *  @  *  * 
 *  @  *  *  *  *  *  * 
方案(57):
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  *  *  *  *  * 
 *  *  @  *  *  *  *  * 
 *  *  *  *  *  *  *  @ 
 *  *  *  *  *  @  *  * 
 *  *  *  @  *  *  *  * 
 *  @  *  *  *  *  *  * 
方案(58):
 *  *  *  *  @  *  *  * 
 *  *  *  *  *  *  @  * 
 @  *  *  
            
           

相關推薦

8 皇帝問題皇帝還是比較 - 演算法

一、問題描述 有一個 8 * 8 的棋盤,和 8 個皇后,皇后的攻擊規則:任意一個皇后可以攻擊同一行、同一列、正反對角線上的皇后。問題:如何擺放8個皇后,可以讓她們互相不攻擊。 提示:一行或一列只能放一個皇后。 二、解題思路 採用深度優先遍歷方式,從第0行開始,逐行檢視每一列中

一個比較好用的圓形progress進度

        因公司需要些一個載入的progress。然後美工妹子給出的圖片是這個樣子,開始我是拒絕的。但是男人怎麼能說不行。然後就默默的擼程式碼了。 一、需求說明:          先說下這個圖片的需求:         1.首先最外面一層是有很多小圓點的,當進度沒有

HTTP協議詳解真的很

    1、基礎:     高層協議有:檔案傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服務DNS、網路新聞傳輸協議NNTP和HTTP協議等 中介由三種:代理(Proxy)、閘道器(Gateway)和通道(Tunnel),一個代理根據URI的絕對格式來接受請求,重寫全部或部分訊息,通過 URI的標識把已

php遞迴實現無限級分類樹

轉載路徑:http://www.php.cn/php-weizijiaocheng-353267.html 無限級樹狀圖可以說是無限級欄目的一個顯著特徵,我們接下來就來看看兩種不同的寫法。 一.資料庫設計 1 2 3

JVM虛擬機---本地接口不太會

類庫 jobject 其他 pri interface cpp 比較 con 基本類型 轉載http://www.newhua.com/2008/0328/33542_2.shtml Java本地接口(Java Native Interface (JNI))允許運行在J

map的遍歷自己認為比較好的

第一種: for (Integer in : map.keySet()) {             //map.keySet()返回的是所有key的值           &

VS2017連線MYSQL 8.0小白必看!

首先用到的工具是: 安裝過程自行操作!!! 最下面有帶註釋的詳細測試原始碼和效果圖; 對接步驟1: 右鍵單擊專案名稱,選擇屬性 對接步驟2: 專案名->屬性->c/c+±>常規->附加包含目錄 新增路徑:C:\\Program F

記錄一下最近用到的linux指令也算比較常用的

1.用vi開啟文件之後,如果想利用關鍵詞快速定位到某一部分可以在命令模式下 (按 i 之前)按下斜槓 / , 這時在終端命令視窗的左下角會出現斜槓 / ,然後在斜槓後面輸入 關鍵詞 ,按下回車就會進行查詢,按n會繼續搜尋下一個,N會反方向搜尋。 2.利用vi開啟文件後,如果文件較長的話利用

VIM基本操作本人不熟悉的~

更大範圍的移動: * 當游標停留在一個單詞上,* 鍵會在檔案內搜尋該單詞,並跳轉到下一處; # 當游標停留在一個單詞上,# 在檔案內搜尋該單詞,並跳轉到上一處; (/) 移動到 前/後 句 的開始; {/}

中國網路安全企業50強來源自安全公司

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【okhttp】Post請求設定utf-8編碼解決漢語請求亂碼問題

 如果用FormBody 傳送post表單請求,就不能設定編碼格式,contentType方法沒有暴露出來,預設也不是UTF-8,引數是漢字就會亂碼。 所以換一種方式 ,用   RequestBody

windows 10 x64系統 jdk1.7、jdk1.8 切換jdk為exe安裝版本

電腦先安裝的1.7,後來安裝1.8,改JAVA_HOME為1.8後cmd->java、javac、java -version可用1.8 後想改為1.7,更改環境變數(步驟1)後cmd->java、javac、java -version,java -versi

CRC迴圈冗餘校驗演算法入門

寫給嵌入式程式設計師的迴圈冗餘校驗(CRC)演算法入門引導前言CRC校驗(迴圈冗餘校驗)是資料通訊中最常採用的校驗方式。在嵌入式軟體開發中,經常要用到CRC 演算法對各種資料進行校驗。因此,掌握基本的CRC演算法應是嵌入式程式設計師的基本技能。可是,我認識的嵌入式程式設計師中

LCS(longest common subsequence)最長公共子序列演算法模板

看了幾分寫的相當好的部落格: 下面內容來轉載自上面文章 問題描述 什麼是最長公共子序列呢?好比一個數列 S,如果分別是兩個或多個已知數列的子序列,且是所有符合此條件序列中最長的,則S 稱為已知序列的最長公共子序列。     舉個例子,如:有兩條

最短路徑 單源最短路徑Dijkstra迪傑斯特拉演算法 Floyd弗洛伊德演算法

兩個演算法的主要思想都是鬆弛,就是兩點間的距離通過第三點來變短 比如   1->3=10     1->2=2   2->3=5    這樣你就可以通過2號點把1,3兩點的距離縮短為7 Dijkstra演算法被稱為單源最短路,意思就是隻能計算某個點到

最小生成樹之kruskal克魯斯卡爾演算法C++實現

參考部落格:https://blog.csdn.net/YF_Li123/article/details/75195549   最小生成樹之kruskal(克魯斯卡爾)演算法 kruskal演算法:同樣解決最小生成樹的問題,和prim演算法不同,kruskal演算法採用了邊貪心

深入理解Dijkstra迪傑斯特拉演算法正確思路+優化+原理

這裡需要一個很好的例子,這裡先拿網上流傳的例子作為反例。 問題1:不符合勾股定理 AC=3,CB=2,AB=6 難道這樣真的無傷大雅嗎?假設你的起點是A,終點是B,難道不應該是兩點之間線段最短嗎?、 問題2:完美地掃到了每個點 按照他的思維邏輯來,確實每個點都可以掃

C++ 二分查詢折半查詢、Binary Search演算法

思路:首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;              否則利用中間位置記錄將表分成前、後兩個子表

資料結構之---C語言實現最短路徑之Dijkstra迪傑斯特拉演算法

此處共有兩段程式碼: 一、 這段程式碼比較全面,其中參考了github上的相關原始碼。可以說功能強大。 //Dijkstra(迪傑斯特拉演算法) #include <stdio.h> #include <stdlib.h> #include <

單源最短路徑長度Dijkstra迪傑斯特拉演算法

求單源最短路徑長度的時間複雜度為O(n*n),空間複雜度同樣為O(n*n),n為總的節點個數 模組化實現函式原始碼如下: #define POINT 250 #define MAXLENGTH 1000001 int road[POINT][POINT]; int len