原创 Chilly Willy

http://codeforces.com/problemset/problem/248/B 一道規律題,如果模擬的話,會嚴重超時~ 輸入n,輸出一個數是2,3,5,7的倍數,這個數的位數必須是n; #include <iostream>

原创 hdu 2544 (dijkstra)

複習算法,最短路徑。 單源點的最短路徑問題: 給定的帶權有向圖G和源點v,求從v到G中其餘各頂點的最短路徑。 dijkstra算法是解決:從某個源點到其餘各頂點的最短距離。 其實,說明這個是不能,,,,map[x][y]=map[y][x

原创 hdu 2544(spfa)

    新學的spfa算法,          spfa算法,就是利用更新的點來更新其他點。被更新的點,放在隊列裏面,當做其他點到源點的跳板,看看通過被更新的點是否可以縮短到源點的距離~~     #include <iostream>

原创 hdu 2527

哈夫曼樹的初級應用~~ 忘記了,可以看看算法導論,裏面講的很詳細~~ 很經典的一個處理方法,利用優先隊列來處理。值得思考 #include <iostream> #include <queue> #include <cstring>

原创 並查集

並查集:是數據結構裏面比較簡單的一種~~ 稍微看看,你應該就會懂,現在我來總結一下, 並查集,是一種樹型的數據結構,用於處理一些不相交集合(Disjoint Sets)的合併及查詢問題。 如果忘了,可以看自己的收集的資料~~不多講述.

原创 hdu 2544(bellman算法)

bellman 算法;   這個算法可以處理負邊,如果存在含負邊的迴路 會返回 0;如果有負權迴路,那麼第 |v| 遍鬆弛操作仍然會成功,這時,負權迴路上的頂點不會收斂,// 也就是說low[v]>low[u]+weight[u][v]

原创 HDU1233 prim算法

普利姆算法入門題。  貼個水題,入門。     這道題目沒有什麼要注意的~。  想類似這種算法,一般都是先有個大概的思路,然後按照你想到的思路來寫,順便優化優化,最後總結一下,以後就可以一直按照你的風格來寫了。思路最重要,代碼只是實現。

原创 hdu 2522

這個題,不錯~挺簡單的就是模擬除法 至於循序小數,因爲分母是一樣的,所以要想出現一樣的商,分子就會相同把分子標記一下就好了~~ 值得思考一下,其實一直沒有想到循環小數怎麼處理,看了別人的解題報告 #include <iostream>

原创 hdu 1114 (完全揹包)

看到完全揹包寫了一下。   一遍wa,仔細看了看ac的代碼,原來數值設定小了。 完全揹包的小變形,用來求填充存錢罐最小的費用,把max給改成min,還有要小心一下,cpack裏面的寫法。 #include <iostream>

原创 hdu 2502

一個數中1的個數; #include <iostream> using namespace std; int sev[22]; int findone(int n) { int c; for(c=0;n!=0;c++) n&

原创 hdu 1203 (01揹包)

01揹包的小變形。 這裏值得注意的是:     01揹包和完全揹包在 求消費v,所得價值w最小情況的變形。     01揹包 :f[0...v] = max;     然而 完全揹包: f[0....v] = max ; f[0]=0;

原创 HDU 1870

#include <iostream> #include <stack> using namespace std; char str[1010]; stack<char>q; int main() { while(cin>>str)

原创 字符串函數

寫字符串題目的時候,難免會遇到一些判斷:某個字符是否爲大寫字母,小寫字母之類的,現在總結一下。 #include <cctype> //c++ 裏面的頭文件 #include <ctype.h> //c語言頭文件 //----

原创 hdu 1431

素數迴文串~ 有幾個要注意的地方: 1.最大的迴文串比較小(9989899),可以利用減少不必要的運算~ 2.求是否是迴文串的時間要比判斷是否是素數的時候要短,先判斷是否是迴文串。 3.數字判斷可以注意一下這種寫法~  畢竟一開始都超時~

原创 hdu 2602 (01揹包)

01揹包; 寫個留做紀念~~ #include <iostream> using namespace std; struct pack { int c,w; }; pack p[1000]; int f[1001]; int v;