原创 HDU 3896 Greast TC 倍增lca,dfn,low,fin的運用

一開始還以爲要用雙聯通求縮點,,寫瘋了,,後面看了別人的題解,真是服了,,又寫了好久,,因爲不把森林的情況考慮,想水過,因爲倍增時順序搞反了,等等,,最終迎來艱難的AC,深深地明白自己還太弱了,如果是比賽怎麼搞!! 思路:對於第一種情況,

原创 POJ 3264 RMQ模板

  #include <iostream> #include <cstdio> #include <cstring> #include <vecto

原创 HDU 2888 二維RMQ 模板

#include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <cmath> using namespace std ; cons

原创 hihocoder 1077 修改點查詢區間

 一道比較簡單的線段樹,不過寫了好長時間,build時 lson 和 rson 忘了賦值,沒有更新num ,看來水題也是要認真寫的 用了hash來記錄沒一點在樹中對應的節點,有葉子節點向根節點更新 #include <iostream>

原创 HDU 不要62 數位DP

這道題目,雖然不是第一道數位dp,但搞了好幾天,思路倒是簡單,主要是再求一個數下有多少滿足要求的判斷太多了,昨天晚上已經過了很多數據,知道還有些判斷有問題,今天早上改 了一下,AC了; 思路:1,先求出 dp[len][0] (代表長度爲

原创 求一個數因數個數,因數和

1,給一個數求它所有因數的和。 公式:每個質因子從0次方加到它的最高次方,然後連乘。 比如:求18 ,(2^0 + 2)*(3^0+3+3^2) = 3*13 = 39  2,給一個數求它所有因數的個數 公式:每個質因子的最高次方+1的乘

原创 POJ 1523 割點

   比較裸的割點,多了個求割點的度,注意輸入輸出格式 #include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <casser

原创 HDU 2586 How far away LCA倍增模板

題目很簡單,沒有考什麼思維;今天AC的時候發現以前我學lca的時候就在搞這題,而且已經WA,TLE,MLE,RE等等各種14發,,, 思路:額,,這尼瑪還要寫思路???? 模板:看代碼 在dfs的時候maxh忘了更新了,居然TLE,,,添

原创 關於生成隨機測試數據

被poj 2155坑了一天多,最後寫了個隨機測試數據生成,終於找到的錯誤,爲了以後寫測試數據不在重新學習,在此備忘一下. 1,頭文件包含<cstdlib>,因爲rand() , srand() 需要 ; <ctime> ,因爲time()

原创 HDU 5124 轉化爲最大前綴和

這道題是看了 BestCoder 的題解才AC的,,雖然自己的做法沒有它快,但不知道錯在何處 ; 思路:對於每一條 line ,令 xi 的權值爲1 , yi+1 的權值爲 -1 , 對所有的節點排序, 求最大前綴和 ; #include

原创 POJ 3368 經典RMQ

下午開始寫,編寫邊看動漫,果然寫挫了,,晚上來debug,,, 題意:給一段不下降序列,,,求,l到r區間出現出現數字最多的數字的次數 思路:1,把相同的作爲一段,num表示該下標所在的段,left表示該段最左邊的下標,right表示該段

原创 ZOJ 3795 Grouping 強聯通 最長路徑

是道好題 ,,  思路:1,首先,凡是roott的子節點均不能與與它在一個group中,所以想到了拓撲排序,求有多少層,但這樣是錯的,因爲縮點裏的點是不能在一個group中; 2,然後,從root到葉子節點的路徑上都不能在一起,這就相當於

原创 POJ 2029 水DP

看到是二維線段樹題,趕腳和POJ 1050很像,一看poj 1050 比這還難,這題用1050方法代碼要複雜一點,注意輸入矩陣的格式 #include <iostream> #include <cstdio> #include <cstr

原创 POJ 2155 二維線段樹 修改區間查詢點

     這道線段樹,我用的是完全暴力的方式,中間沒有優化;      說實話,簡直坑爹,對於n長度的區間的線段樹 ,它的節點數目爲N左右,第二維開N的大小居然過不了 ,真是了,檢查了好久好久,本來昨天就該過的,真坑爹!!!! 方法:二維

原创 POJ 3160 Father Christmas flymouse 強聯通

說實話,真心沒看懂題目是什麼意思,在搜了一下後終於搞懂了,就是給一個無向圖,每個點有一個權(可爲負),讓你仍選一條路徑走,去訪問別的點,到達該點的時候可以選擇得到權或者放棄,求使得獲得的權最大的值 ;趕腳有一點樹形DP在裏面; 思路:強聯