原创 Dijkstra + 鄰接表存圖 + 優先隊列優化

測試板子:https://www.luogu.org/problemnew/show/P3371 #include<cstdio> #include<cstring> #include<algorithm> #include<iostr

原创 P3373 【模板】線段樹 2(區間加法+區間乘法+區間求和取模)

#include <bits/stdc++.h> #define lson l,m,rt << 1 #define rson m+1,r,rt << 1|1 using namespace std; typedef long long

原创 [CodeForces-438D] (線段樹 + 單點替換 + 單點取模 + 區間求和)

給一個序列 支持3種操作 1 u v 對於所有i u<=i<=v,輸出a[i]的和 2 u v t 對於所有i u<=i<=v a[i]=a[i]%t 3 u v 表示a[u]=v(將v賦值給a[u]) n,q<=1e5 a[i],t,

原创 AC自動機算法模板

PS:還不是很會,上午剛學,把僅學的一點先記錄下來,肯定有錯,學會了再來糾正(逃。 測試題目:http://acm.hdu.edu.cn/showproblem.php?pid=2222 想學自動AC機,忽然發現當初最開始學習時聽到的一句

原创 P1338 末日的傳說

題目描述: 只要是參加jsoi活動的同學一定都聽說過Hanoi塔的傳說:三根柱子上的金片每天被移動一次,當所有的金片都被移完之後,世界末日也就隨之降臨了。 在古老東方的幻想鄉,人們都採用一種奇特的方式記錄日期:他們用一些特殊的符號來表示從

原创 P1725 【琪露諾】dp-單調隊列優化

題目鏈接:https://www.luogu.org/problemnew/show/P1725 看了題後不難想到這個題是個dp,而狀態轉移方程爲dp[i] = max(dp[k]) (k >=i+l && k <= i+r) + a[i

原创 C++ string的一些常用函數

#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e5+10; int main(){ //字符串的插入操

原创 線段樹板子(區間修改)

測試題目:P3372 【模板】線段樹 1 https://www.luogu.org/problemnew/show/P3372   #include<cstdio> #include<cstring> #include<algorit

原创 Djiskra + 鄰接表存圖 + 優先隊列優化

測試板子:https://www.luogu.org/problemnew/show/P3371 #include<cstdio> #include<cstring> #include<algorithm> #include<iostr

原创 9X9數獨 Poj - 2676 Poj - 2918

題目鏈接:https://vjudge.net/problem/POJ-2918 兩道題是一樣的,改個輸出格式即可。題意很明確,給你一個9X9的數獨,讓你把他做完。使用DFS暴力剪紙即可。 用3個數組,一個標記行,一個標記列,一個標記3*

原创 UVA - 11624 [kuangbin帶你飛]專題一 簡單搜索 I - Fire!

題目鏈接:https://cn.vjudge.net/problem/UVA-11624 題意: 人和火每分鐘移動一個方格,上、下、左、右,四個方向中的一個。火勢向四個方向同時蔓延。人可以從迷宮的任何一個邊界逃離迷宮。無論是人還是火都不

原创 二分搜索,最大化平均值 Poj-3111

題目鏈接:https://vjudge.net/problem/POJ-3111 題目大意就是給你一堆有價值和重量的珠寶,問你如何挑選能夠是最終單位珠寶的價值最大。   首先我們的思路肯定是貪心,按照它們的單位價值進行排序,取最大的幾個。

原创 二分搜索,最大化最小值 Poj-2456

題目鏈接:https://vjudge.net/problem/POJ-2456   這個題我遇見了3次,3次都不會寫。深刻印證了你以爲的二分就只是二分。以前單純的認爲,二分就是一個查找一個單調序列中的值是否存在,就是一個lower_bo

原创 貪心 Poj 3069

題目鏈接:https://cn.vjudge.net/problem/POJ-3617 題意:       給定一個字符串 ,利用這個字符串通過不斷進行以下任意兩種操作,從而構造出一個字典序儘可能小的新字符串。 從初始字符串的頭部拿走一個

原创 判定一個解是否可行 Poj 1064

題目鏈接:http://poj.org/problem?id=1064 題目大意:給你n段繩子和它們各自的長度,問能從中間找到最長的公共長度是多少? 套用二分搜索的模板,我們設最長的長度爲x。在區間初始化時r = INF,l = 0。即可