原创 poj4512(2013騰訊編程馬拉松——完美隊形1)(動規)

題目鏈接:點擊打開鏈接 解題思路:這道題與最長上升字序列有些類似,只不過是個對稱的最長上升子序列。解題思路仍是動態規劃。 子問題:前j個數字和後i

原创 poj1386(歐拉回路)

<a target=_blank href="http://poj.org/problem?id=1386" target="_blank"> </a>題目鏈接 解題思路:把每個單詞當成是一條有向邊。把首字母和尾字母當成是節點,如果該

原创 Vijos1114解題報告(不建樹解決二叉樹問題)

描述: 我們可以把由“0”和“1”組成的字符串分爲三類:全“0”串稱爲B串,全“1”串稱爲I串,既含“0”又含“1”的串則稱爲F串。 FBI樹是一種二叉樹1,它的結點類型也包括F結點,B結點和I結點三種。由一個長度爲2^N的“01”串

原创 關於scanf函數

關於scanf函數 scanf函數是編程中最長使用的函數之一了,掌握scnaf函數的使用是學好編程的基礎。 首先是scanf函數的返回值問題: 如果scanf函數返回的是執行一次讀取,匹配成功的個數。 如:scanf(“%d%d%d”,&

原创 hdu2062

題意:求按字典序排列數串中的第m個數串 這是一道簡單的組合數學問題。下面列出一下情況,來介紹其中的規律。 對於集合只有一個元素的情況 1 集合有兩個元素 1 1 2 2 2 1 集合有三個元素: 1 1 2 1 2 3 1 3 13 2

原创 poj3321 (樹狀數組)

題意:給出一棵樹,一開始每個節點都長着一個蘋果,有兩種操作,一種是改變某個節點蘋果狀態(之前有蘋果改爲無蘋果,無蘋果改爲由蘋果),另一種就是求一個節點連同其所有子節點的蘋果總數。   難點:          如果利用樹狀數組或線段樹,如

原创 hdu5223(GCD)

題目鏈接:點擊打開鏈接 題意: 首先給定數組中有多少個數,只告訴你他們最小值爲1,不告訴你每個數字是多少,要求根據給定區間中數的最大公約數,復原原來的序列。 思路: 先把所有的數初始化爲1,然後根據指定問題,如果某一區間的最大公約數是an

原创 POJ2533, 最長上升子序列(貪心+二分查找時間複雜度O(nlogn))

使用這種方法是對動態規劃方法的一種優化,在用動態規劃求解時,求到第i個元素的最長上升子序列時,是在前i-1個數中尋找比第i個元素小的且該數是長度最長的上升子序列的最後一個數,在其長度基礎上加一即爲到該元素的最長上升子序列。在這次查找中浪費

原创 Poj2479(&poj2593)(動規)

題意:在一個數組中找出兩個不相交的串的的最大和。 解題思路:這是最大連續和的一個變形,不同之處就在於是求兩個不相交的串的最大和。容易想到的就是用兩個數組來分別記錄以i結尾的串最大和和以i開頭的最大和,然後固定一個前一個或後一個串,遍歷另一

原创 POJ1195(二維線段樹)

二維線段樹 二維線段樹的基本結構就是在一維的基礎上增加一棵線段樹,實現樹套樹的結構這裏以Y座標爲主,在Y座標基礎上構建X座標上的樹。仍然用數組去模擬樹,只不過這裏用二維數組修改某個結點是先從Y方向上查找對應位置,找到Y座標後在找X座標,

原创 HUD5282 Senior's String 詳解(使用DP解決組合數學)

題意:假設兩個字符串的最長公共子序列長度爲L,求第一個字符串中有多少個長度爲L的子序列是第二個字符串的子序列。顯然找出一個字符串的所有長度爲L的子序列是組合數學問題,如果枚舉所有子串的時間複雜度是n! 級的。這裏就需要用動態規劃來解決。首

原创 Java-時間複雜度爲O(nlogn)的排序算法(快速排序, 歸併排序, 堆排序, 希爾排序)

/** 包含多種靜態排序方法 * Created by Andre on 2016/6/27. */ public class Sorter { /** * 快速排序 * 遞歸形式 * 第一個記錄

原创 Java synchronized參數的討論

/** * synchronize關鍵字參數測試類 * * synchronized代碼塊的測試: * synchronized關鍵字參數必須是多個線程共享的變量,才能達到同步目的 * 例如: * 1. 如果用了類裏面的一個屬

原创 Struts,Spring,Hibernate源代碼下載地址

Struts:http://archive.apache.org/dist/struts/source/?C=M;O=A Spring:https://github.com/spring-projects/spring-framework

原创 一些斐波那契恆等式及證明。

首先說明斐波那契數列的定義:用F[i] 表示斐波那契數列的第i項,F[1] = 1, F[2] = 1, 當n >= 3時,F[i] = F[i-2] + f[i-1]。 斐波那契恆等式: 1. F[1]^2 + F[2]^2 + F[3