原创 第六屆藍橋杯JavaA組第八題移動距離

移動距離 X星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號爲1,2,3… 當排滿一行時,從下一行相鄰的樓往反方向排號。 比如:當小區排號寬度爲6時,開始情形如下: 1 2 3 4 5 6 6

原创 線段樹的簡單應用及介紹Java實現

什麼是線段樹?有什麼用呢? 舉一個例子做簡單說明: 假設有一個數組A,長度爲N,對於這個數組,我有二種操作:第一是連續區間i到j的和,第二是修改某個索引i的值 ,在沒有引入線段樹以前,兩個操作的時間複雜度分別是o(N)和o

原创 算法之矩陣快速冪

矩陣快速冪 矩陣的快速冪是用來高效地計算矩陣的高次方的。將樸素的o(n)的時間複雜度,降到log(n)。 這裏先對原理(主要運用了矩陣乘法的結合律)做下簡單形象的介紹: 一般一個矩陣的n次方,我們會通過連乘n-1次來得到它的n次冪

原创 服務器端開發總結

1.服務異步化 網絡IO處理異步化(NIO, Jetty Continuation,Servlet 3) 服務的異步化(Future, Callable, Runnable, Callback) 2.線程與協程 多線程併發或

原创 數據結構之堆Java實現

數據結構之堆 堆是什麼?堆是一種特殊的完全二叉樹,就像下面這棵樹一樣 最小堆的特點:所有父節點的值都比子節點要小!相反 最大堆得特點:所有父節點的值都比子節點要大! 如何構造堆呢? 99,5,36,7,22,17,4

原创 Maven工具使用指南_1

maven的好處 1.maven可以很方便的管理jar包(依賴管理) 項目所需要的jar包都放在本地倉庫中(repository文件夾下) 2.maven可以很方便的分模塊開發,提高開發效率 3.maven可以編譯、測試、運行

原创 Java線程join方法

一、作用 Thread類中的join方法的主要作用就是同步,它可以使得線程之間的併發執行變爲串行執行。代碼實例如下: public class ThreadDemo{ public void static main

原创 Java多線程之內存可見性與原子性總結

多線程處理共享變量時候的Java中內存模型 Java內存模型規定了所有的變量都是存放在主內存中的,當線程使用變量時候都是把主內存裏面的變量拷貝到了自己的工作空間或者叫做工作內存。 線程的working memory 是cpu

原创 第七屆藍橋杯JavaA組第一題煤球數目

煤球數目 有一堆煤球,堆成三角棱錐形。具體: 第一層放1個, 第二層3個(排列成三角形), 第三層6個(排列成三角形), 第四層10個(排列成三角形), …. 如果一共有100層,共有多少個煤球? 請填表示煤球總數目的

原创 第七屆藍橋杯JavaA組第四題分小組

分小組 9名運動員參加比賽,需要分3組進行預賽。 有哪些分組的方案呢? 我們標記運動員爲 A,B,C,… I 下面的程序列出了所有的分組方法。 該程序的正常輸出爲: ABC DEF GHI ABC DEG FHI ABC

原创 第七屆藍橋杯JavaA組第三題搭積木

搭積木 小明最近喜歡搭數字積木, 一共有10塊積木,每個積木上有一個數字,0~9。 搭積木規則: 每個積木放到其它兩個積木的上面,並且一定比下面的兩個積木數字小。 最後搭成4層的金字塔形,必須用完所有的積木。 下面是兩種合格

原创 Java中的synchronized(同步代碼塊與同步方法)

代碼實例如下: package runnable; import java.math.BigDecimal; public class ThreadDemo { public static void main

原创 第八屆藍橋杯JavaA組第九題分巧克力

標題: 分巧克力 兒童節那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。 小明一共有N塊巧克力,其中第i塊是Hi x Wi的方格組成的長方形。 爲了公平起見,小明需要從這 N 塊巧克力中切出K

原创 巴什博奕

什麼叫巴什博奕呢? 兩個頂尖聰明的人在玩遊戲,有n個石子,每人可以隨便拿1−m個石子,不能拿的人爲敗者,問誰會勝利? 巴什博奕是博弈論問題中基礎的問題 它是最簡單的一種情形對應一種狀態的博弈 博弈分析 我們從最簡單的情景

原创 數據結構與算法之拓撲排序Java實現

什麼是拓撲排序呢? 此處省略一萬字,下面主要講怎麼實現, 實現拓撲排序要抓住幾點 統計入度爲0的節點(可以用隊列實現) 每一個節點的出度包括哪些節點(Map+List) 每個節點的入度爲多少(數組) 例子+具體實現 題