原创 POJ2752 Seek the Name, Seek the Fame 【既是前綴又是後綴的子串】

【題目大意】 輸入一個僅含小寫字母的字符串,求出其子串的長度,該子串滿足條件:既是前綴又是後綴。輸入包含多組數據。 【解題思路】 分析題意,得知該題是求給定字符串的所有前綴後綴子串的長度。(以下將前綴後綴串簡稱爲PS串(Prefix-

原创 UESTC 1091秋實大哥の戀愛物語 【簡單KMP】

【解題思路】 此題首先容易看出是KMP算法,唯一的難點在於上下平移。 我們很容易證明對於兩個串A,B,如果B能夠在A中匹配x次(可以上下平移),那麼A和B中每一個數減去前一個數的差組成的新串匹配次數一樣。 例如: A:1 2 3 1

原创 c++引用與指針的區別

 ★ 相同點:     1. 都是地址的概念;     指針指向一塊內存,它的內容是所指內存的地址;引用是某塊內存的別名。     ★ 區別:     1. 指針是一個實體,而引用僅是個別名;     2. 引用使用時無需解引

原创 HDU 1166 敵兵佈陣 【簡單的樹狀數組||線段樹】

【解題思路】 直接樹狀數組過 【代碼】 #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #includ

原创 c++ 指針詳解

指針的概念 指針是一個特殊的變量,它裏面存儲的數值被解釋成爲內存裏的一個地址。要搞清一個指針需要搞清指針的四方面的內容:指針的類型,指針所指向的類型,指針的值或者叫指針所指向的內存區,還有指針本身所佔據的內存區。讓我們分別說明。  先

原创 UESTC1132 醬神賞花 【DP+單調隊列】

【題目大意】 中文題面。 需要注意的是AI,BI,TI和題面裏的輸入順序不同 【解題思路】 由於bi是常數,所以可以用Σb來減去答案即可。 所以實際上我們維護的是|x-ai|的最小值 狀態定義:dp[i][j]表示第j時刻(注意是時刻不

原创 大學生程序設計競賽暨西南地區高校邀請賽 賽後總結

大學生程序設計競賽暨西南地區高校邀請賽 賽後總結 前言 又是一次踏入電子科技大學的校門,又是一次半失落半喜悅的走出春芽生長的校園。 多校賽,是一個神奇的比賽。一共11道題,5個小時,每A一道題,都會有志願者來發氣球。 猜猜我們隊有幾個

原创 POJ2823 Sliding Window 【單調隊列、單調棧初步】

【題目大意】 給你一個長度不超過1e6的序列,現在有一個數字k,表示長度爲k的子序列自左到右滑動時保持長度爲k。 現在要求出該長度爲k區間在滑動的過程中區間的最大值最小值。 【解題思路】 如果此題直接模擬或者利用最大值的單調性來做的話

原创 SCOI2017 賽後總結及反思

SCOI2017 賽後總結及反思 前言 前不久纔去打了校賽,現在是參加省選,時間變了,經歷變了,但是地點沒變,仍然是那棟熟悉的實驗大樓。我也沒變,還是一如既往的弱,一如既往的水。 比賽歷程 D1T1樹鏈剖分裸題,然而我是在省選後的那個週一

原创 POJ2777 Count Color 【簡單的線段樹】

【題目大意】 現在有一個長度爲L cm的板,每一釐米劃分成一個格子,一開始每個格子顏色塗爲1(1號顏色),之後有O個操作,一共有兩種操作: 1、C a b c 代表將區間[a,b]全部刷成c顏色(一共有T種顏色,會讀入) 2、P a b

原创 HDU 4006 The kth great number【線段樹二分】

【題目大意】 輸入兩個正數n,k,代表n次操作和查詢第k大數,有兩種操作: 1、I A 代表將A加入序列 2、Q 代表詢問第k大數 多組數據,1<=n,k<=1000000 【解題思路】 本題採用線段樹無疑,但是需要注意的是詢問操作。

原创 HDU1348 Wall 【簡單凸包】

【題目大意】 首先讀入N,L分別表示有N座城堡以及城牆到城堡的最近距離不得低於L 然後N行輸入每個城堡的平面座標 需要求出最短的能夠滿足條件的城牆長度。 條件: 1)城牆到城堡的最近距離不得低於L 2)城牆必須包含最外圈的所有城堡 輸

原创 c++ 友元函數及友元類

友元是指: 採用類的機制後實現了數據的隱藏與封裝,類的數據成員一般定義爲私有成員,成員函數一般定義爲公有的,依此提供類與外界間的通信接口。但是,有時需要定義一些函數,這些函數不是類的一部分(注意友元函數不是類的一部分),但又需要頻繁地

原创 UESTC395 Dynamic Query System 【簡單平衡樹(數組Treap)】

【題目大意】 題目包含多組數據 每組數據讀入一個正整數n表示操作數量,接下來n行,每行一個操作 操作分爲八種: 1)I X 表示將X插入序列 2)R X 表示將X從序列中刪除,注意,由於X可能被插入了多次,所以只要隨便刪除一個即可 3

原创 C++ Vitual函數

主要是最近做模擬題時遇到了,於是把網上寫的特別好的轉載過來。 Virtual是C++ OO機制中很重要的一個關鍵字。只要是學過C++的人都知道在類Base中加了Virtual關鍵字的函數就是虛擬函數(例如下面例子中的函數print),於