原创 USACO sort3

水題。/* ID: fairyroad TASK:sort3 LANG:C++ */ #include<fstream> using namespace std; ifstream fin("sort3.in"); ofstream f

原创 關於C++的學習,對一位網友的回覆

這篇文章有灌水的嫌疑,畢竟其實我也只是個小菜,不應該這麼公開的說C++學習方法,尤其劉未鵬老大榜樣在先了。其實,我更多的是希望獲得更多交流的機會,也是對自己的學習歷程的回顧,學了很久的C++,對C++其實還是一知半解,尋地洞深藏遮羞中!不

原创 USACO Agri-Net,最小生成樹

複習。想想要是大二剛開始搞CS那會就一邊做USACO多好呀,知識和技能想必一定會紮實很多。需要找出所給圖的最小生成樹。我們使用這樣的算法:在每一步,將不在樹中的長度最小的邊加入樹中。典型的Prim算法,Prim算法的本質思想是貪心,貪心從

原创 輸入輸出細節處理,USACO Fractions to Decimals

算法還是很簡單的,基本上學過小學除法算術的都知道,因爲n/d的每位運算所得的餘數只可能是0..d-1,如果在某處出現一個餘數之前曾經出現過(在小數位上),那麼可以肯定此時從該處到上次用出現這個這個商之間存在循環節。這樣,就可以用基本的標記

原创 無聊的題,USACO control company

記錄哪些公司控制哪些公司,且當每次我們得知某公司控制了某公司百分之多少的股份,就更新控股信息。如果超過50就遞歸搜索公司j,每個公司至多隻遞歸一次——這個關鍵,不然程序無法結束,所以得維護一個is_visit數組判斷重複。題沒什麼意思,可

原创 DP到底有多飄逸?看USACO money

看到數據量大到1W,我就知道單純的DFS算法那是肯定會超時的,而且一看也基本上看得出來要用DP來處理。不過今兒有勁兒,看看DP到底能比DFS快多少。下面是超時代嗎。/* ID: fairyroad TASK:money LANG:C++

原创 USACO nocows

不錯的DP題。設dp[i][j]表示 i個點組成的等於k高度的滿足題意的個數,這樣高度要求是k的就直接引用,後面的應該不用說了吧。任何高度爲Hi的樹都是兩個子樹構成,一個必須高度爲Hi-1,另外一個無所謂。但是要注意重複。注意代碼註釋部分

原创 水題其實也能反映思維的嚴謹性:USACO The Tamworth Two

簡單的模擬。需要記錄方向和座標,進行模擬,直到相遇。如何判斷永遠不相遇呢?可以用bool數組保存已經訪問過的位置信息。但是一開始我糊塗了,暈透了我,靠。一開始我都沒往下細想就用了兩個3維數組來存儲,前面幾組數據都對,唯獨到了第4組數據我的

原创 USACO prefix

/* ID: fairyroad TASK:prefix LANG:C++ */ #include<fstream> #include<iostream> #include<string> #include<vector> using n

原创 USACO Preface

前面好幾天,俺要發文章CSDN都跟我作對,點擊發表一點反應都沒有,俺怒了,實在不想繼續搞下去,尤其,那時候傻逼的俺也沒有發現CSDN直接粘貼Word文件的地兒,鬱悶了。下面幾個USACO程序都直接貼代碼了。/* ID: fairyroad

原创 USACO Sweet Butter 與圖的尋徑算法

此題的實際模型如下:給定一個有P個頂點的無向含權圖,選擇一個頂點,使得從該點到給定的N個頂點的權值之和最小。 最經典的就是Dijkstra算法了。這個經典的不能再經典的貪心策略,應該都知道的吧。每次都需要在Distance數組中尋求一個最

原创 USACO fact4, spin

1、fact4 這個問題在《編程之美》上有過一個類似的問題,大概是求階乘 n! 後面有多少個0,最後可以轉換爲求[1,N]之間因子5有多少次。這個問題和fact4有點淵源,對於 n! 的尾數,看看規律就知道了: 1!  = 1 2!  =

原创 USACO Contact, Stamps, 哈希,動態規劃

1、contact 這題估計是丟俺老臉的題,因爲俺就直接枚舉了。唯一的trick是對於 01, 001這樣的字符串,計算hash值的時候,需要記得轉換爲 101, 1001這樣的形式,不然肯定就混淆了,所以直接上代碼吧,應該好懂。

原创 USACO runround

/* ID: fairyroad TASK: runround LANG: C++ */ #include<iostream> #include<fstream> #include<deque> using namespace std;

原创 USACO Feed Ratios, Magic Squares

本質上講,這兩道題都是數學題,ratios是行列式解線性方程組,squares是組合數學。可見ACMer數學基礎好確實是非常重要的。 1、Feed Ratios 所求的實際上就是一個最簡配比 x, y, z, w,使得 x(a1,b1,c