原创 EOJ Monthly 2020.1——A. 迴文時間

A. 迴文時間 單點時限: 1.0 sec 內存限制: 512 MB Cuber QQ 很驚奇地發現 2020 年 1 月 22 日的 10:02:02 構成的字符串竟然是一個迴文串。(構成的字符串是 20200122100202

原创 混合揹包詳解

混合揹包 有的物品只可以取一次(01揹包),有的物品可以取無限次(完全揹包),有的物品可以取的次數有一個上限(多重揹包)。應該怎麼求解呢? 01揹包與完全揹包的混合 考慮到在P01和P02中給出的僞代碼只有一處不同,故如果只有兩類

原创 優先隊列——priority_queue

優先隊列具有隊列的所有特性,包括基本操作,只是在這基礎上添加了內部的一個排序,它本質是一個堆實現的 定義:priority_queue<Type, Container, Functional> ,也可以不寫後兩部分內容,默認從大到

原创 [藍橋杯2019初賽]Fibonacci數列與黃金分割

[藍橋杯2019初賽]Fibonacci數列與黃金分割 水題一個 #include<iostream> #include<bits/stdc++.h> long long f[100]; using namespace std;

原创 堆與堆排序——數據結構的剋星

其實建堆和堆排序十分的簡單,就是不斷的向下調整的過程 建堆是從floor(2/i)處開始,一直到根節點,依次不斷的向下調整 堆排序是從最後一個節點不斷的與第一個根節點交換,然後再讓第一 個節點不斷的向下的調整 #include<b

原创 迴文自動機——字符串的剋星

首先,迴文樹有何功能? 假設我們有一個串S,S下標從0開始,則迴文樹能做到如下幾點: 1.求串S前綴0~i內本質不同迴文串的個數(兩個串長度不同或者長度相同且至少有一個字符不同便是本質不同) 2.求串S內每一個本質不同迴文串出現的

原创 dijkstra & prim

幾天做到了最短路的問題,於是隨手放一個最短路的模板 #include<bits/stdc++.h> using namespace std; const int maxn=1e3; //如果寫的是0x3f3f3f3f這中形式的話在

原创 L3 天梯地圖

L3 天梯地圖 天梯地圖題目 當我看到這道題的第一思路是,這道題肯定是用搜索,至於是深搜還是廣搜,我選擇了深搜。其實對於搜索這類題目,我是比較害怕的,因爲最近寫搜索的題目寫的有點少了,但是,迎難而上的道理我還是懂的,於是我就開始動

原创 L2-025 分而治之

L2-025 分而治之 這是一道簡單題,寫着篇博客主要是給自己提個醒,做題要學會變通 這道題我一直在考慮如何對點進行操作,結果超時,但實際上這題對邊進行遍歷一遍就好了 #include<bits/stdc++.h> using n

原创 manacher

manacher 馬拉車算法說白了就是遞推進行優化求迴文串的算法 就是求p數組,表示以以i爲中心的最長迴文串的半徑 核心就是mx和id的使用 主要分爲三個部分 1.要求的i在mx內部 .以i的對稱點爲中心的迴文串完全包含在

原创 揹包問題的剋星——揹包九講

P01: 01揹包問題 題目 有N件物品和一個容量爲V的揹包。第i件物品的費用是c[i],價值是w[i]。求解將哪些物品裝入揹包可使價值總和最大。 基本思路 這是最基礎的揹包問題,特點是:每種物品僅有一件,可以選擇放或不放。 用子

原创 大整數問題的剋星

大整數 大整數問題的思路說白了就是把字符串反轉過來,但記得要對那些短的字符串進行補零,從頭開始相加。 下面是把字符串存到結構體中寫的思路 首先把字符串轉換成這種形式 struct bign{ long long d[maxn];

原创 後綴數組——字符串的剋星

後綴數組 僅僅是我個人的理解,估計大家看不太懂,想從頭開始學的話還是看這兩篇博客吧,不過以後我會把博客更新完整的,先讓我消化消化 五分鐘搞懂後綴數組 最詳細的後綴數組 字符串的後綴數組其實就是對一個字符串的各個後綴字符字串進行排序

原创 歐拉圖和哈密頓圖

歐拉圖 歐拉圖:具有歐拉回路的圖叫做歐拉圖 歐拉回路:從起點出發,每條邊有且只經過一次,最終回到起點的路徑 歐拉通路:從起點出發,每條邊有且只經過一次,不要求回到其點的迴路 半歐拉圖,擁有歐拉通路,但不用有歐拉回路的圖叫做半歐拉圖

原创 Java提交oj題目基礎

今天用java寫了一道程序,發現與c++的寫法完全不同,廢了好長時間才寫出一道特別簡單的題目。 一 1.基本數據類型,int,long,double,char,String,StringBuffer 2.包裝類:Integer