原创 搜索與數據結構

最簡單的搜索當然分爲兩種,深度優先搜索和廣度優先搜索。這兩種算法分別採用了棧和隊列的數據結構來實現。對於深搜,優化方法通常是各種剪枝,主要包括最優化剪枝和可行性剪枝。對於廣搜,優化方式通常是進行重複去除和優先搜索。 通常都說能用深搜

原创 方格取數問題:雙線動態規劃

#include #include #include using namespace std; int main() { int i,j,l,k,n,t1,t2,t3,t4,a[10][10],b[10][10][10][10]

原创 0-1揹包的維度拓展

引言 0-1揹包是經典的動態規劃揹包問題之一,也是多數揹包問題的基礎。0-1揹包標準版本(完全表達)需要兩個維度,一個表示物品i,一個表示代價j。優化後,可省去物品維度。那麼,如果有兩種代價又該如何呢?於是,我們將0-1揹包拓展

原创 八皇后問題優化版(含代碼)

之前發表過一個版本的八皇后,後來在洛谷上看到了另一個八皇后(其實是N皇后)。這個最大到達13,對剪枝要求較高。之前版本的程序有一個測試點無法通過。 提供參考代碼: #include #include #include #inclu

原创 二分算法基礎 第一章 簡單二分

二分算法是一種效率極高的算法(思想),在很多的實例中都得以運用,比如快排和歸併排序。本文將對二分算法的一些基礎內容以及使用進行討論。 入門-二分查找 我們先來看一個二分查找的例子。(p2searching.cpp) #inclu

原创 [BZOJ1412] [ZJOI2009] 狼與羊的故事 (最小割)

給定一個N×M 方格矩陣,每個格子可在0,1,2 中取值。要求在方格的邊上進行劃分,使得任意聯通塊內不同時包含1 和2 的格子。 若對方格矩陣的形式感到困惑,我們可以先考慮圖上的形式。 假設圖中有節點W1 ,Q1 ,S1 ,S2 ,且

原创 HNOI2017 大佬 - DP,BFS,Hash,單調性

這真的是一道綜合題。然而感覺A得莫名其妙,交上去的時候其實非常虛,然後就莫名其妙地AC了? 首先我們考慮到,所有和懟有關的操作都是時刻無關的。也就是說,我們把這些操作拆散放到任何時候都對結果不會有影響。因此我們考慮把這些操作剝離出來。換

原创 省選前培訓小結(經歷與經驗)

腦子一熱就鐵定了出來培訓的心,給定的Goal大都沒有完成,但說到底還是有些收穫的 先扯扯爲什麼出來培訓呢、 可以寫大碼農題(然而一道都沒寫) 可以專心搞一陣子(然而效率並沒有我想象的高) 可以翹課,可以翹月考,維持心態穩定(然而竟然有

原创 NOIP2017 遊記 Day2

話說爲什麼過了快一個月纔來寫……T_T…… 考前又來早了,被寒風肆虐着…… T1:天哪!(讀題只讀了10s)……MDZZ怎麼會出模板題……下一題 T2:額……(怎麼又是圖論) 題目有點長啊!(讀了一遍,沒看懂) 額……好像有點懵,看

原创 NOIP2017 遊記 Day 1

昨天沒拿到自己的准考證,莫名詭異,心想一定有陰謀。 早晨7:40,不知爲什麼來這麼早,在寒風中凌冽了……一節課,然後進考場。 壓縮文件加嵌套了?……不能根據題目名稱瞎猜了…… buWangChuXin 好密碼 T1:天哪,這麼

原创 [Tyvj1728] 普通平衡樹 - Splay模板

第三次A這題了,代碼終於像點樣子。 #include<cstdio> #define Ms 100005 using namespace std; int fa[Ms],ch[Ms][2],cnt[Ms],size[Ms],k[Ms],

原创 [ZJOI2006] 書架 - 平衡樹

要求維護一個序列(序列中的每個元素都有一個編號,終生不變),可以指定某個元素並將其放到序列開頭、序列結尾,或與其前驅或後繼交換位置。支持詢問某個編號的元素位置和某個位置的元素編號。 用平衡樹來實現此題,需要特殊考慮的就是編號問題。由於平

原创 Splay模板

第二代Splay魔板。 #include <cstdio> #include <cstring> #include <iostream> using namespace std; int fa[100005],ch[100005][2]

原创 Splay模板 - v2.1

蒟蒻成功達成一次性AC模板,在此紀念。 #include<cstdio> using namespace std; int fa[100005],ch[100005][2],k[100005],size[100005],cnt[1000

原创 [BZOJ1001] [BJOI2006] 狼抓兔子

給定一個稀疏平面圖,求其最小割。(點數N≤1000000 ) 題目都翻譯成這樣了,也沒有做法之說,甚至成了模板題。 手打隊列開小了,剛開始RE了半天…… #include<iostream> #include<cstring> #i