<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>nnnnnobita</title>
        <link>https://paragraph.com/@nnnnnobita</link>
        <description>undefined</description>
        <lastBuildDate>Mon, 20 Apr 2026 17:32:50 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>nnnnnobita</title>
            <url>https://storage.googleapis.com/papyrus_images/38426a1ed8d53e841eed78199eec6f60e52c13c837e81f627016bb52e3348906.jpg</url>
            <link>https://paragraph.com/@nnnnnobita</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[迪杰斯特拉（Dijstra）算法和弗洛伊德（Floyd）算法]]></title>
            <link>https://paragraph.com/@nnnnnobita/dijstra-floyd</link>
            <guid>ZMxEwo7fbphg1LIDGJSw</guid>
            <pubDate>Sat, 04 Dec 2021 12:01:48 GMT</pubDate>
            <description><![CDATA[迪杰斯特拉 找到某一个顶点到其他所有顶点的最短距离 弗洛伊德 找到所有顶点之间的最短距离package Algorithm.floyd; import java.util.Arrays; public class floydDemo { public static void main(String[] args) { final int N = 65535; char[] vertex = {'A','B','C','D','E','F','G'}; int[][] weight = new int[][] { {0,5,7,N,N,N,2}, {5,0,N,9,N,N,3}, {7,N,0,N,8,N,N}, {N,9,N,0,N,4,N}, {N,N,8,N,0,5,4}, {N,N,N,4,5,0,6}, {2,3,N,N,4,6,0}, }; Graph graph = new Graph(vertex.length, weight, vertex); graph.floyd(); graph.showAll(); } } class Graph{ private cha...]]></description>
            <content:encoded><![CDATA[<p>迪杰斯特拉</p><p>找到某一个顶点到其他所有顶点的最短距离</p><p>弗洛伊德</p><p>找到所有顶点之间的最短距离</p><pre data-type="codeBlock" text="package Algorithm.floyd;

import java.util.Arrays;

public class floydDemo {

    public static void main(String[] args) {
        final int N = 65535;
        char[] vertex = {&apos;A&apos;,&apos;B&apos;,&apos;C&apos;,&apos;D&apos;,&apos;E&apos;,&apos;F&apos;,&apos;G&apos;};
        int[][] weight = new int[][] {
            {0,5,7,N,N,N,2},
            {5,0,N,9,N,N,3},
            {7,N,0,N,8,N,N},
            {N,9,N,0,N,4,N},
            {N,N,8,N,0,5,4},
            {N,N,N,4,5,0,6},
            {2,3,N,N,4,6,0},
            };
        Graph graph = new Graph(vertex.length, weight, vertex);
        graph.floyd();
        graph.showAll();
    }
}

class Graph{
    private char[] vertex;
    private int[][] dis;
    private int[][] pre;
    
    public Graph(int length, int[][] dis, char[] vertex) {
        this.vertex = vertex;
        this.dis = dis;
        this.pre = new int[length][length];
        for(int i=0; i&lt;vertex.length; i++) {
            Arrays.fill(pre[i], i);   //pre[i]是第i行
        }
    }
    
    public void showAll() {
        
        for(int i=0; i&lt;vertex.length; i++) {
            //输出pre
            for(int j=0; j&lt;vertex.length; j++) {
                System.out.print(pre[i][j] + &quot; &quot;);
            }
            System.out.println();
            //输出dis
            for(int j=0; j&lt;vertex.length; j++) {
                System.out.print(dis[i][j] + &quot; &quot;);
            }
            System.out.println();
        }
    }
    
    public void floyd() {
        int len;   // 临时变量记录经过中间节点的新的距离
        for(int k=0; k&lt;vertex.length; k++) {   // k表示中间节点
            for(int i=0; i&lt;vertex.length; i++) {  // i表示出发节点
                for(int j=0; j&lt;vertex.length; j++) {
                    len = dis[i][k] + dis[k][j];
                    if(len &lt; dis[i][j]) {   //如果len小于两点之间的直接距离，就可以替换了
                        dis[i][j] = len;    // update the distance between i and j
                        pre[i][j] = pre[k][j];   // update the pre-vertex of i,j
                    }
                }
            }
        }
    }
    
}
"><code>package Algorithm.floyd;

<span class="hljs-keyword">import</span> <span class="hljs-title">java</span>.<span class="hljs-title">util</span>.<span class="hljs-title">Arrays</span>;

<span class="hljs-keyword">public</span> class floydDemo {

    <span class="hljs-keyword">public</span> static void main(String[] args) {
        final <span class="hljs-keyword">int</span> N <span class="hljs-operator">=</span> <span class="hljs-number">65535</span>;
        char[] vertex <span class="hljs-operator">=</span> {<span class="hljs-string">'A'</span>,<span class="hljs-string">'B'</span>,<span class="hljs-string">'C'</span>,<span class="hljs-string">'D'</span>,<span class="hljs-string">'E'</span>,<span class="hljs-string">'F'</span>,<span class="hljs-string">'G'</span>};
        <span class="hljs-keyword">int</span>[][] weight <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-keyword">int</span>[][] {
            {<span class="hljs-number">0</span>,<span class="hljs-number">5</span>,<span class="hljs-number">7</span>,N,N,N,<span class="hljs-number">2</span>},
            {<span class="hljs-number">5</span>,<span class="hljs-number">0</span>,N,<span class="hljs-number">9</span>,N,N,<span class="hljs-number">3</span>},
            {<span class="hljs-number">7</span>,N,<span class="hljs-number">0</span>,N,<span class="hljs-number">8</span>,N,N},
            {N,<span class="hljs-number">9</span>,N,<span class="hljs-number">0</span>,N,<span class="hljs-number">4</span>,N},
            {N,N,<span class="hljs-number">8</span>,N,<span class="hljs-number">0</span>,<span class="hljs-number">5</span>,<span class="hljs-number">4</span>},
            {N,N,N,<span class="hljs-number">4</span>,<span class="hljs-number">5</span>,<span class="hljs-number">0</span>,<span class="hljs-number">6</span>},
            {<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,N,N,<span class="hljs-number">4</span>,<span class="hljs-number">6</span>,<span class="hljs-number">0</span>},
            };
        Graph graph <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> Graph(vertex.<span class="hljs-built_in">length</span>, weight, vertex);
        graph.floyd();
        graph.showAll();
    }
}

class Graph{
    <span class="hljs-keyword">private</span> char[] vertex;
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span>[][] dis;
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span>[][] pre;
    
    <span class="hljs-keyword">public</span> Graph(<span class="hljs-keyword">int</span> length, <span class="hljs-keyword">int</span>[][] dis, char[] vertex) {
        <span class="hljs-built_in">this</span>.vertex <span class="hljs-operator">=</span> vertex;
        <span class="hljs-built_in">this</span>.dis <span class="hljs-operator">=</span> dis;
        <span class="hljs-built_in">this</span>.pre <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-keyword">int</span>[length][length];
        <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i<span class="hljs-operator">=</span><span class="hljs-number">0</span>; i<span class="hljs-operator">&#x3C;</span>vertex.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            Arrays.fill(pre[i], i);   <span class="hljs-comment">//pre[i]是第i行</span>
        }
    }
    
    <span class="hljs-keyword">public</span> void showAll() {
        
        <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i<span class="hljs-operator">=</span><span class="hljs-number">0</span>; i<span class="hljs-operator">&#x3C;</span>vertex.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
            <span class="hljs-comment">//输出pre</span>
            <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> j<span class="hljs-operator">=</span><span class="hljs-number">0</span>; j<span class="hljs-operator">&#x3C;</span>vertex.<span class="hljs-built_in">length</span>; j<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
                System.out.print(pre[i][j] <span class="hljs-operator">+</span> <span class="hljs-string">" "</span>);
            }
            System.out.println();
            <span class="hljs-comment">//输出dis</span>
            <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> j<span class="hljs-operator">=</span><span class="hljs-number">0</span>; j<span class="hljs-operator">&#x3C;</span>vertex.<span class="hljs-built_in">length</span>; j<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
                System.out.print(dis[i][j] <span class="hljs-operator">+</span> <span class="hljs-string">" "</span>);
            }
            System.out.println();
        }
    }
    
    <span class="hljs-keyword">public</span> void floyd() {
        <span class="hljs-keyword">int</span> len;   <span class="hljs-comment">// 临时变量记录经过中间节点的新的距离</span>
        <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> k<span class="hljs-operator">=</span><span class="hljs-number">0</span>; k<span class="hljs-operator">&#x3C;</span>vertex.<span class="hljs-built_in">length</span>; k<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {   <span class="hljs-comment">// k表示中间节点</span>
            <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i<span class="hljs-operator">=</span><span class="hljs-number">0</span>; i<span class="hljs-operator">&#x3C;</span>vertex.<span class="hljs-built_in">length</span>; i<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {  <span class="hljs-comment">// i表示出发节点</span>
                <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> j<span class="hljs-operator">=</span><span class="hljs-number">0</span>; j<span class="hljs-operator">&#x3C;</span>vertex.<span class="hljs-built_in">length</span>; j<span class="hljs-operator">+</span><span class="hljs-operator">+</span>) {
                    len <span class="hljs-operator">=</span> dis[i][k] <span class="hljs-operator">+</span> dis[k][j];
                    <span class="hljs-keyword">if</span>(len <span class="hljs-operator">&#x3C;</span> dis[i][j]) {   <span class="hljs-comment">//如果len小于两点之间的直接距离，就可以替换了</span>
                        dis[i][j] <span class="hljs-operator">=</span> len;    <span class="hljs-comment">// update the distance between i and j</span>
                        pre[i][j] <span class="hljs-operator">=</span> pre[k][j];   <span class="hljs-comment">// update the pre-vertex of i,j</span>
                    }
                }
            }
        }
    }
    
}
</code></pre>]]></content:encoded>
            <author>nnnnnobita@newsletter.paragraph.com (nnnnnobita)</author>
        </item>
        <item>
            <title><![CDATA[Next to gamefi, socialfi is coming]]></title>
            <link>https://paragraph.com/@nnnnnobita/next-to-gamefi-socialfi-is-coming</link>
            <guid>2oyUHDdpbi8G4bhG46MN</guid>
            <pubDate>Sat, 20 Nov 2021 07:52:02 GMT</pubDate>
            <description><![CDATA[Who looks down on Socialfi today, just like they looked down on Gamefi six months ago]]></description>
            <content:encoded><![CDATA[<p>Who looks down on Socialfi today, just like they looked down on Gamefi six months ago</p>]]></content:encoded>
            <author>nnnnnobita@newsletter.paragraph.com (nnnnnobita)</author>
        </item>
    </channel>
</rss>