原创 洛谷 P1666 前綴單詞

https://www.luogu.org/problem/show?pid=1666 首先空集合也是答案,所以樣例是對的; 那麼我們思考; 假如兩個串ab; a< b 如果這個時候a不是b的前綴; 那麼所有字典序小於

原创 找到一個點是在環上

如果要縮點直接太監 有向圖 我們設一個數組v[i] 表示i點可以有誰灌水得到 那麼對於每一個沒有遍歷到的點去灌一遍水 如果遇到x->y並且v[x]==v[y]那麼v[x]就是一個在環上的點; 無向圖 和有向圖一樣,但是我們要

原创 bzoj2131: 免費的餡餅

http://www.lydsy.com/JudgeOnline/problem.php?id=2131 蒟蒻不多言 直接轉載: http://blog.csdn.net/xym_csdn/article/details/5

原创 大力stl——P2202 [USACO13JAN]方塊重疊Square Overlap

https://daniu.luogu.org/problem/show?pid=2202#sub 總覺的自己的stl不好,現在是要好好補一補; 首先這道題目大家去看zhzh2001的題解; 我們需要了解set 這個比較簡

原创 spfa——洛谷P1608 路徑統計

https://www.luogu.org/problem/show?pid=1608#sub spfa最短路計數; 我們在spfa裏面修改就好了; 我們增加一個cnt數組,表示到達這個點的最短路總方案; 但是這樣的話在傳

原创 洛谷 P1633 二進制

我去考fop_zz的; 結果他真的秒掉了; https://www.luogu.org/problem/show?pid=1633 我們考慮三個長度爲l的串; 顯然如果這3個串符合條件的話; 我們就只要保證增加2^l

原创 洛谷 P1869 愚蠢的組合數

https://www.luogu.org/wiki/show?name=%E9%A2%98%E8%A7%A3+P1869 我刷數論題一臉懵逼; C(n, k) ≡ C(n/p, k/p)*C(n%p, k%p) (mod p)

原创 洛谷 P3414 SAC#1 - 組合數

https://www.luogu.org/problem/show?pid=3414#sub 二項式定理; 這個大家自己去看吧; 比如 (a+b)^3 =(a+b)(a+b)(a+b); 展開後每一個數都是從這三組

原创 洛谷P2212 [USACO14MAR]澆地Watering the Fields

https://www.luogu.org/problem/show?pid=2212 很神奇啊 一共2000個點,那麼最多有4e6條邊; 如果通prim取最小生成樹的話就是吻過的; 然後我又試了一下kruskal的算法

原创 洛谷P3193 [HNOI2008]GT考試

https://www.luogu.org/problem/show?pid=3193 一開始感覺這道題目很難啊什麼的; 然後身邊的同學們慢慢都ac了; 才發現這道題並不是怎麼的難; 我們搞一個f[i][j]表示現在已經有

原创 洛谷P3049 [USACO12MAR]園林綠化Landscaping

https://www.luogu.org/problem/show?pid=3049 這道題的思路啦,其實還好啦; 但是自己想的時候跟傻逼一樣; 還好又fop_zz給我講了半天; 做這道題目啦,先去做一下洛谷的一題“種樹

原创 vijos1264 神祕的咒語

https://vijos.org/p/1264 感覺很有趣的dp; 首先你要想到一個dp方程; f[i][j]表示a[]裏面到第i個,b[]裏面強制取第j個; 然後我們需要先枚舉i; 通過j來做一個最長上升子序列;

原创 洛谷P1941 飛揚的小鳥

https://daniu.luogu.org/problem/show?pid=1941 思路很簡單的一個dp; 但是細節是很多的; 我們設f[i][j]表示到第i列j行; 那麼 f[i][j]=min(f[i

原创 洛谷P3147 [USACO16OPEN]262144

https://daniu.luogu.org/problem/show?pid=3147 很有意思的題目啦; 雖然想想好像也是很顯然的; 就是一個和倍增很像的dp 這道題其實十分有趣。 f[i][j]表示從j開始合

原创 哈夫曼樹——洛谷 P2168 荷馬史詩

https://daniu.luogu.org/problem/show?pid=2168 哈夫曼樹話說是初賽的知識; 想當年prayer教初賽也是很懷念的呢; 有 N 個數Ai,每次可以挑兩個數字 u 和 v直到只留留下