原创 poj1062 native dij

就是dij求最短路,輸入的時候注意用s[0][i]保存物品本身的值 交換物品不是兩兩之間符合等級就可以,是整個交換過程都要符合 所以枚舉一下等級每次都dij好了=,= 每次枚舉把不符合的v值直接設爲1,是一種很好的思路。。。。=,= #i

原创 LightOJ1074 SPFA判負環

不怎麼會SPFA,當模板用吧 複雜度O(ke)k約等於2 用cir[]數組紀錄有沒有負環#include <stdio.h> #include <string.h> #include <iostream> #include <algori

原创 poj1860 bellford man判正環

bellford man判正環 共能連n-1條邊,鬆弛n-1次後 若能繼續鬆弛就是有正環 #include <iostream> #include <stdio.h> #include <algorithm> #include <queu

原创 poj3159 dijktstra+heap

dijkstra   複雜度n方,加上優先隊列複雜度nlogn dijkstra+heap 換模板改模板,希望這個模板能用吧。。。 兩個結構體一個紀錄點一個紀錄邊 #include <iostream> #include<stdio.h>

原创 poj3259 bellman判正環

繼續bellman判正環 注意path是雙向的,蟲洞是單向的 d[510]爲各點與源點距離,然而沒有源點。。。各點之間初始一樣就可以 #include <iostream> #include <stdio.h> #include <alg

原创 poj1679次小生成樹

次小生成樹:是否存在多種情況的最小生成樹 把最小生成樹連的邊保存起來,然後循環,不用其中任意一條邊形成最小生成樹跟原來答案是否一樣 #include <iostream> #include <algorithm> #include <cs

原创 poj3660 floyd

感覺不怎麼算最短路呢,floyd的改變吧。。。 mp[i][j]表示i在j前面 一個點如果已確定在它前面和在它後面一共有n-1個點,就確定排名了 有人說是閉包傳遞是什麼鬼,留着。。。 #include <iostream> #includ

原创 poj1733 帶權並查集+map

開始看題目姿勢不對,然後發現是n的長度是1000000000不是串的長度,又發現輸出是最多符合前幾項 這類區間並查集都維護一個權值終於感覺理解了,左區間需要-1 由於數組開不下,但詢問只有5000條就可以用map存,hash不會。。。還是

原创 poj2912 帶權並查集,類似食物鏈

真是看不懂題目,看題解才知道它要幹嘛 枚舉裁判。。 如果只有一個裁判,輸出確定他人不是裁判所需最大行數,用數組error記錄 如果沒有裁判輸出impossible,多個裁判不確定 注意unionset推的關係 #include <iost

原创 hdu5673 卡特蘭數+線性求逆元

機器人可以向左走或向右走或不動,在原點時只可以向右走,從原點出發N步回到原點公有多少種走法。 走的那幾步爲  C(n,2*i), 走2*i步的方法等於Catalan(i)。。。入棧對應向右走,出棧對應向左走,不能從右忘左越過原點對應空棧的

原创 hdu5877 dfs+線段樹離散化

計算一棵樹上有多少個u,v對,滿足u是v的祖先並且a[u]* a[v]<=k dfs往下搜的時候,用線段樹求[1,k/a[i]]中共有多少元素,然後更新 不怎麼會離散化,恩。。。記一下unique函數和lower_boud  m =u

原创 hdu5773 2016年多校4 nlogn求LIS

先把0都去掉,然後不是0的數,減去它前面有多少個0(因爲是嚴格單調增的 nlogn求LIS 用d[] 記錄,當前爲止,d[i]表示到目前爲止,長度爲i的上升子序列最末最小爲d[i]。。。d[]肯定是不嚴格單調增的。。 lower_bou

原创 AC自動機簡單題 hdu2222+poj2778

基本上是跟着kuangbin掛的題和模板做的,渣渣都不好意思膜。。。 理解的AC自動機,在一個大串裏找挺多小串,把小串構成trie樹,根節點root 爲 0,每個節點有一個序號,node[i][j]中i表示序號爲i的點, j表示下一個字符

原创 hdu5714 百度之星複賽C

恩。。大概就是如果 y - z <= x +z , 那麼 對於這一艘船來說,在[y - z , x +z ]這個區域都可以完整的觀察到它 轉換成 y - z 爲左端點,x + z 爲右端點,的n 條線段 把向右走的船看成固定不動的, 在這

原创 poj2528線段樹+離散化+二分

真是非常的高端T_T看了兩天題解才理解,不停的RE最後數組開的非常大。。。 下面貼hash的方法 解法:離散化,如下面的例子(題目的樣例),因爲單位1是一個單位長度,將下面的       1   2   3   4  6   7   8