原创 NOIP2018提高組回憶錄

這篇回憶記本想直接複製一個人的競賽歷程以表儀式感就好了。可是,人有時難免會矯情。在此寫下這一篇回憶錄。 想象中的回憶錄大抵是這樣,有點文藝範。能自豪地拿給人看,給沒競賽的朋友看,也留給未來的自己。別人看完說:真他媽熱血,感覺灌了一大鍋

原创 NOIP2017普及組回憶記

初遇 時間不知不覺就已經差不多過了一年了,現在是2018。回首2017,我當時還那麼稚嫩。我並不是說要多麼煽情或者感動自己,只是覺得回憶起來有一些心酸和開心,這就足夠了 當時我初二下冊去學習OI,說來也巧,我最開始接觸OI是因爲一位

原创 分塊

分塊 時間複雜度:n * (根號n) 原理:把一個序列分成一塊塊的,每一塊有三個元素。一個是這個塊表示的序列左邊界left,右邊界right,攜帶的信息。(攜帶的信息可以爲區間最大值、區間和等等) 分塊三部曲 建塊(build)

原创 切題清單

切題清單 分塊 線段樹 分塊 洛谷P2801 - 教主的魔法

原创 五一歡樂測試(2018廣西省選題)

關於五一的歡樂測試(爆零測試),其實就是今年的廣西省選題。我覺得是十分歡樂了[笑] 總結:滿分290(其實是300,但10分數據錯了),第一次80分,無奈。第二次發現bug後140,最後又跟一大佬學了第4題,最後210,提高組全班第2……

原创 2006

能量項鍊 題目:題目 思路:很久以前寫過的一道題..現在必須要把每一個細節講清楚。 總體思路:區間dp,把大區間化爲一個個小區間,算把小區間合起來變爲大區間 設計狀態dp[i][j],表示i-j的項鍊所產生的最大能量 那麼現在思

原创 2004

合併果子 題目鏈接:題目 思路:首先看到這題就開始的想法是每次進行一次排序,拿出兩個最小的,合併後再丟進去。然後重複操作…..但是這樣寫每次都要sort一次,數據一大不免會超時。所以就優先隊列寫是正解,當然針對於這一題還可以set庫中的m

原创 快速冪

定義:顧名思義,快速冪就是快速算底數的n次冪。其時間複雜度爲 O(log₂N), 與樸素的O(N)相比效率有了極大的提高。 原理:百度百科講的很好 代碼實現: int power(int a,int b)//求a的b次方 {

原创 並查集

概念:並查集是什麼? “並”,“查”,“集”三個字體現了其算法的核心。 “並”即把不同的集合合併和一個集合 “查”即查找兩個元素是否在同一集合中 “集”即集合。 然後問題引入: 若某個家族人員過於龐大,要判斷兩個是否是親戚,確實還很不

原创 algorithm

algorithm:算法。裏面有着許許多多的黑科技。一個一個來看 1:algorithmの全排列 說到全排列,恐怕想起的就是那搜索了。那麼,algorithm庫裏還有一個神♂ 奇的東西叫next_permutation,即是生成全排列的

原创 揹包問題

揹包問題其中就是動態規範中的一大種類 揹包問題最基礎的內容分爲01揹包、完全揹包、多重揹包 01揹包: 有N件物品和一個容量爲V的揹包。(每種物品均只有一件)第i件物品的費用是 c[i],價值是w[i]。求解將哪

原创 LCA(最近公共祖先)

前提引入: 看到LCA這個詞的中文意思,顧名思義,也就是找兩個點最近的公共祖先罷了。 我相信,其實不看LCA的代碼,就自己寫,也能寫出LCA,因爲LCA算法實現就是兩個點一步一步往上走,找到同一個點就輸出結束 但這樣太慢了!O(n),我們

原创 排列組合

首先上來我就是一波公式[滑稽] 看不清可以放大…. 讓我們來一個個推導! 全排列:你可以用搜索的思路來理解。有m個格子,第一個格子有m種填法,第二個格子就(m-1)種填法,那麼,最後一種只有1種填法。那麼就是m! 排列:也用搜索的思想

原创 queue

queue爲隊列的意思,有了它,我們便不用用數組模擬隊列了 1:queueのqueue 聲明方式:queue<類型> 名字; 基本操作: q.empty():如果隊列爲空,則返回true,否則返回false q.size():返回隊

原创 歐拉線性篩素數

這裏介紹兩種篩法 一般篩法(埃拉託斯特尼篩法): 基本思想:素數的倍數一定不是素數 實現方法:用一個長度爲N+1的數組保存信息(0表示素數,1表示非素數),先假設所有的數都是素數(初始化爲0),從第一個素數2開始,把2的倍數都標記爲非素數