原创 ZOJ-3791

DP, dp[i][j]表示第i次轉換,有j個位置和初始串不一樣,然後DP p從0到m,表示把j中p個不同位置反轉,  把n-j中m-p個位置反轉,這樣操作後不相同位的個數就變成了j+m-2*p,這樣就有狀態轉移方程了 #include<

原创 POJ-3069

區間覆蓋點,從左到右貪心枚舉即可 #include<cstdio> #include<vector> #include<algorithm> using namespace std; namespace { int R, n; v

原创 POJ-3617

水題一道。。沒啥好說的,比較首尾,輸出小的,如果相同就往內部枚舉再比較,直到不同 #include<cstdio> #include<deque> using namespace std; namespace { deque<cha

原创 ZOJ-3806

幾何基礎沒怎麼做過。。太弱太弱了,在基本的精度問題上WA了好久。。首先二分的方法沒寫對,開始是以內切圓的半徑誤差爲條件來跳出循環,這樣一直TLE,看了看別人的代碼是以二分左右邊界誤差小於eps後跳出循環的,改了之後還是WA,然後讀輸入的時

原创 Ubuntu12.10解決機器過熱自動關機問題

我的是Acer本子裝了Ubuntu之後開機過一段時間後機器會變的很燙,然後就自動關機了,後來網上搜了很多解決方案,下面這個有用,記錄下防止下次重裝後腳本就丟掉了。。 原因是同時開了集顯和獨顯的,關掉一個就不會發燙了 #!/bin/bash

原创 ZOJ-3775

唬人題,其實很水。。處理下兩種字符就可以了,其他的全不用管 #include<iostream> #include<string> using namespace std; int main() { int T; cin >> T

原创 POJ-2431

優先隊列的應用,參考書上的思路。。 #include<cstdio> #include<queue> #include<algorithm> using namespace std; namespace { typedef pair

原创 ZOJ-3713

水題,長度按7位存,當前字節最高位如果是1的話,後續還有記錄長度的字節,沒有了的話,後面就是真正的字串字節了,字串字節直接按16進制打印就行了 #include<cstdio> using namespace std; int mai

原创 ZOJ-2868

思路來自大牛的代碼和題解。。不多說了,話說這題的思路真的巧妙 #include<cstdio> #include<set> #include<vector> #include<algorithm> using namespace std

原创 ZOJ-3768

有定理任意自然數能用不多於3的三角形數表示。。那麼直接暴力枚舉吧,。 #include<cstdio> #include<vector> #include<algorithm> #include<cmath> using namespa

原创 ZOJ-3609

這題有個地方非常坑。。就是m等於的情況。。感覺這種情況應該是不存在逆元的,因爲ax模1肯定爲0,不知道怎麼搞的。。反正WA在這個地方了,改改就過了,坑死 #include<cstdio> #include<utility> using

原创 ZOJ-3600

無意間發現的水題,秒之 #include<cstdio> namespace { int prev(int d, int t) { double res = t / 5.0 * 2; if (d <= 3) res +

原创 ZOJ-3790

本來以爲是DP,後來發現是模擬。。思路如下,先按種類存入map,每個顏色記錄連續段的長度和末位置,存入列表,然後針對每種顏色尋找remove最多K個格後的最大連續段,注意是最多remove K個,而不是精確K個,用一個隊列來搞,記錄當前狀

原创 ZOJ-3804

本來是道挺簡單的模擬,被一個函數給坑死。。就是memcpy這個函數,妹的查了N久的錯就是不知道爲毛,提交一直WA,本來也沒什麼算法,邏輯對了基本就能對,用了這個函數就WA,改成手工拷貝值就對了,我去,血的教訓就是以後再也不用這個函數了。。

原创 ZOJ-3607

其實是一道水題,枚舉一下就OK了,注意售貨員睡着以後就不會醒來了,所以後面的東西都賣不了了 #include<cstdio> #include<set> #include<vector> using namespace std; in