原创 hdu 2430 Beans 單調隊列

#include<iostream> #include<cstdio> #include<vector> #include<cstring> #include<string> #include<algorithm> #include<qu

原创 ZOJ 2526(最短路+優先隊列)

題意:求出一個圖的最短路的數量,並求出在最短路的條件下求出獲得權值最大的路。 我的做法就是用優先隊列優化Dijkstra算法,就是在mindis[v]>mindis[number]+dis[i](i是邊的編號,v是邊的終點,number是

原创 UVA Live Archive的一個坑點

在UVa Live Archive OJ上面做題的時候,如果你不小心交了一份會死循環的代碼,OJ不會像其他OJ一樣判定爲TLE ,而是會過很長時間之

原创 簡單Graph類

#include<iostream> #include<string> #include<queue> #include<algorithm> #include<cstdio> #include<vector> using namespa

原创 現網操作數據的注意點

作爲後臺開發,需要操作一下現網數據庫,無論是爲了修復髒數據,還是正常的業務需求,應該或多或少會遇到。但是,操作現網數據是一個風險極高的動作,稍有不慎操作錯誤,就會導致現網的大面積故障。因此在現網操作數據之前,需要認真check一下這些點:

原创 HDU 3966 Aragorn's Story(樹鏈剖分)

樹鏈剖分的點剖分(相對應的是邊剖分)。算是很基礎的樹鏈剖分模板題吧。將樹的鏈分成一段段連續的區間,然後應用到線段樹中,就可以實現樹上兩點之間的路徑查詢了。 #include<iostream> #include<cstdio> #incl

原创 CAS的小實驗

CAS是什麼? cas是一種在多線程的編程中的一種避免競爭態的方法,作用類似與互斥鎖。當多個線程對一個共享的數據進行訪問的時候,如果多個線程同時對這個數據進行寫,而沒有采取任何方法避免多線程同時寫,數據就會出現各種問題。 解決這個問題的

原创 linux複習雜記(二) linux網絡編程中的細節

1.在學習《Unix網絡編程》過程中,有一個例子,就是服務器每收到一個連接請求,在調用accept函數並獲取socketid之後,就會調用一個fork函數生成一個子進程來處理這個連接(這種是多進程服務器的模式吧~)。然而在子進程的事務結束

原创 HDU 5442 (串的最大表示+KMP)

題意:一個環形的字符串長度爲n,求出長度n的字典序最大的子串,如果多個符合的子串,取順時針起始字符下標最小的子串,如果從該起始字符的順時針和逆時針得到結果相同,取順時針的那個。 做法:這道題據說可以用後綴數組、後綴自動機之類的重型兵器解決

原创 Java中AES加密算法使用

之前在搜索引擎上搜索了很多的AES使用例子,但是使用起來總是有各種各樣的問題。經過自己實驗之後,終於寫出一個可用的AES封裝類。下面直接上代碼: import org.apache.commons.codec.binary.Base64;

原创 linux 複習雜記(一) linux中的進程

1.父進程與子進程擁有私有的內存映像,調用fork函數生成子進程之後,父進程對屬於它的變量作出修改對於子進程來說是不可見的。但是,父進程和子進程是可以共享已經打開的文件的。如果一個文件在子進程創建之前被打開了,那麼父進程對文件內容作出了修

原创 Protobuf c++使用小坑(set_allocated函數)

protobuf是後臺開發中,比較常用的數據通信協議。相對於json,具有數據壓縮率高等優點。但是,在某些情況下,稍不留神容易用錯。 最近使用protobuf的時候,使用了相對陌生的複合類型的賦值。結果用錯了,然後就莫名其妙core d

原创 騰訊實習生面試印象

2016.4.21 今天終於收到騰訊的電話,讓我幾天之後到酒店簽約。其實離hr面試已經好多天了,經過這麼多天煎熬的等待,在收到通知的時候沒有激動,只是長舒一口氣:終於定下來了!本來hr面之後就有同學讓我寫一個面經,但是爲了攢rp,我等到收

原创 udp學習雜記

以下內容均是閱讀《Unix網絡編程》關於UDP章節的筆記。 1.因爲udp的數據報的傳輸是不可靠的,所以,如果傳出一個數據報之後然後通過讀取操作獲得返回結果,有可能發送的數據報沒有發送成功,或者回覆沒有接受成功,都可能使得程序在讀取操作中

原创 poj 1947(樹形揹包問題)

題意:給定一棵樹,求獲取一棵節點數爲p的子樹需要切割的邊的最小數量 做法:定義數組dp[i][j]爲以i爲根節點獲取節點數爲j的樹需要切割的最小的邊的數量。對於i的一個子節點v,如果不要以v爲根節點的整棵子樹,那麼dp[i][j]=dp[