原创 joj 2443: Confused

此題就是求逆序數,遞推關係很快就找到了,但是對與細節的還是悲劇啊!!!在此謝謝孔牛,看了他的解題報告後才AC!!! #include<stdio.h> int f[1005][10005]; int N,C; int main() {

原创 poj 1816

字符串匹配!!! 我用的是trie樹+dfs; 寫的太長了!!!時間效率也不高!!!   一道糾結很久的題一直強迫自己寫出來!!!   wa了幾次,錯在了判重上 *j*jjjj應該是 4 但是由於*的存在,find遞歸是我的結果ans隊列

原创 TLU3753

沒啥好說的水題,但不知道爲什麼int可以long long型卻PE?????   #include<iostream>#include<stdio.h>#include<cmath>using namespace std;int N,M;

原创 hdu 1053

 又是一道哈弗曼編碼的題!!!! 很水但是糾結了幾天的題!!!!原因是:優先級隊列的性質不熟悉, 對於priority_queue<node*,vector<node*>,com> Q;這句話,我的比較因子就不能是重載運算符!!!而要定義

原创 assert()用法

  /* assert example */ #include <stdio.h> #include <assert.h>   void print_number(int* myInt) {   assert (myInt!=NULL);

原创 再談優先級隊列!!!

優先隊列,也就是原來我們學過的堆,按照自己定義的優先級出隊時。默認情況下底層是以Vector實現的heap。   函數列表:empty() 如果優先隊列爲空,則返回真 pop() 刪除第一個元素 push() 加入一個元素 size()

原创 poj 2185

與next[],相關的常用用法.1:求字符串的重複數.當while(i%i-next[i]==0),重複數爲(i/i-next[len];) 練習題(poj 2406 1961) 2:len-next[len]爲一個重複子串的基串個數,比

原创 poj 1094

我都想死了,如果還不過的話,我是絞盡腦汁的把我的拓撲排序烤爐各種情況,但最終還是悲劇了!!! 組要就是topsort2判斷有無環路的時候太弱了; 最後想了個傻逼辦法,用兩種不同的方法拓撲排序!!!topsort1先判斷有誤換;topsor

原创 poj 3259

很水的題卻做了N久,一開用spf,一直有是循環,原因就是spf和bellman_ford的判讀是否有負環的方式是不同的;詳細見代碼  在有負權的的圖中球最短路,spf效率更高,但判斷是否有負環則bellman_ford效率更高 bellm

原创 poj2406

這個題就是用KMP算法的next數組求最小重複子串長度;這與我剛剛做的2185是一個思路; 我也是應爲理解那個題的解法才做這題; 但是我到現在還是沒有對算法正確性有很好的認識; 姑且但結論記吧: 對於代碼中i-next[i]代表了字符串最

原创 zoj 3421

三分法求解凸函數最值問題!!! 第一次用三分解決問題,這題其實是很水的題,但前提是這道用三分法求解凸函數最值; 否這沒法想!!!WA一次,在於但是吧精度弄小了!!! 凸函數的max還是凸函數,要求目標凸函數的最小值只要三分就可以了 #in

原创 zoj 3432

這道題沒做來,對我來說是一個很大的打擊,   第一:一開始用map,超時,這是必須的,然我深刻的認識到 用庫對時間效率的影響,就連調用一下string,也是要耗費很長時間的。   第二:平時學過的知識,遷移能力很不行,在做這題之前,

原创 三分法求解凸函數的最值!!!

  二分法作爲分治中最常見的方法,適用於單調函數,逼近求解某點的值。但當函數是凸性函數時,二分法就無法適用,這時三分法就可以“大顯身手”~~        如圖,類似二分的定義Left和Right,mid = (Left + Rig

原创 poj 2084

catalan數的水題,雖說是水體,但我還是搞了N久,原因有下:   第一是:沒有意識到是catalan數; 第二是:沒有意識到數列的範圍; 第三是:大數模板不能很快的寫出來;   #include<cstdio>#include<ios

原创 hdu3076

今天比賽就看了這題!!!一直超時!!! 解題報告是這麼說的:   暫時沒發現規律吧,那就按部就班的做吧,先把每個值算出來保存起來,然後就是單純的區間最小值問題,但是n 比較大,用線段樹的話肯定超時,RMQ 的話空間存不下,那就用單調隊列吧