原创 關於while((c = getchar()) != EOF)的使用

這個問題是昨天遇到的。 首先輸入字符後敲回車是可以出現輸出的,同時在debug的過程中發現是一個個讀入的。 接着是關於EOF,EOF是定義在stdio.h的一個常量,嘗試打印EOF打錯了幾次,最後直接printf("%d", EOF);得

原创 cmd命令的學習總結(2)

聲明:以下出現的所有目錄及文件都只會在學習過程中出現操作。進行的操作會儘可能在命令行中打出。但畢竟現在是學習, 格式與操作部分只挑選一些目前覺得有用或者目前懂得操作的,剩下的可以通過自行查找。(忽略部分檢查過程,同時建立素材將不再寫出)(

原创 cmd命令的學習總結(1)

聲明:以下出現的所有目錄及文件都只會在學習過程中出現操作。同時所有操作是先在命令行中操作後打入後再輸入文章中。(忽略部分檢查過程)        格式與操作部分只挑選一些目前覺得有用或者目前懂得操作的。 1.進入某盤    格式:直接

原创 線性時間排序:計數排序

算法描述:找出每一個數值在改數組中有多少個值比它小,那麼就可以把這個數放在第n+1位。 算法實現:遍歷每一個a[i],是的c[a[i]]++。然後計算每一個數前面有多少個數。在把這些書轉移,一共會用到三個數組。 時間複雜度:O(n+k),

原创 HDU acm step:Chapter one section two

Box of Bricks Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s):

原创 HDU acm step:Chapter one section three(簡單貪心)

這次的題目除了第四題和最後一題,都是貪心題。 1.3.1 Moving Tables 策略:將處於對面的當作是同一個位置,每次佔用在相應的位置加一,全部數完之後求出最大的佔用的那個值,就是最大的時間了。開始出現的錯誤是沒有分開求佔用。

原创 快速排序(隨機化版本)

算法描述:每次選擇一個值,將比它小的值放在它的左邊,比它大的值放在它的右邊。不斷遞歸調用即可。 時間複雜度:平均複雜度O(nlgn),最大複雜度爲O(n2),最小複雜度爲O(n)。有序程度越高,複雜度越大。最高時是每次換位都是全部分到同一

原创 乘船問題(貪心)

問題描述:有n個人,第i個人重量爲wi。每艘船的最大載重量爲c,且最多隻能乘兩個人。用最少的船裝載所有人。 分析:先按輕重排序,考慮最輕的人,讓他和最重的人組合,如果跟最重的無法組合,那麼重量往下減,知道可以組合。若所有人都不可以那麼所有

原创 選擇不相交區間(活動安排問題)(貪心)(HDU2037)

數軸上有n個開區間(ai,bi)。選擇儘量多個區間,使得這些區間兩兩沒有公共點。(這裏的區間可以當作是活動的時間) 分析:個人理解是每一個區間儘可能選小區間,同時使數軸利用率儘可能大。 (1)先對bi進行非減序排序,b1<b2<b3...

原创 HDU 2011 多項式求和

Problem Description 多項式的描述如下: 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 現在請你求出該多項式的前n項的和。   Input 輸入數據由2行組成,首先是一個正整數m(m<100

原创 區間覆蓋問題(貪心)

問題描述:數軸上有n個閉區間[ai, bi], 選擇儘量少的區間覆蓋一條指定線段[s,t]。 分析:突破口還是區間包含和排序掃描,但是可以先把每個區間在大區間以外的部分去掉,同時相互包含的情況下,此處是考慮大區間。各區間按照ai從小到達排

原创 最優裝載問題(貪心)

問題簡述:給出n個物體,第i個物體重量爲wi。選擇儘量多的物體,是的總重量不超過C。 分析:最簡單的一種了,排序,依次選擇每一個物體,直到無法裝下爲止。 附代碼如下: #include <bits/stdc++.h> using nam

原创 高精度算法(超出範圍的數值的計算)

一般我們可能會遇到超過範圍的數的運算,直接定義進行計算,那麼久可以通過高精度算法來實現。 高精度算法的實現步驟如下:讀入,將數據儲存到數組中,進行加減乘除的計算。 儲存數據時注意的問題: 判斷位數,由於這裏是儲存到字符串裏面,故而數組的第

原创 最優編碼問題(哈夫曼編碼)(貪心)

問題描述:給出n個字符的頻率ci,給每個字符賦予一個01編碼串,使得任意一個字符的編碼不是另一個字符編碼的前綴,而且編碼後總長度(每個字符的頻率與編碼長度乘積的總和)儘量小。 分析:此處策略爲設置變長編碼,給低頻的編碼設置較長,高頻的編碼

原创 部分揹包問題(貪心) HDU1009

問題描述:有n個物體,第i個物體的重量爲wi,價值爲vi。在總重量不超過c的情況下讓總價值儘量高。每一個物體都可以只取走一部分,價值和重量按比例計算。 分析:要綜合考慮價格和重量,所以應該從性價比最高的開始拿,就是單位重量價格最高的,知道