Time of Update: 2018-12-05
Numbers,這道題是Round 1A 2008的最後一道題,給定n,要求計算(3 + √5)^n整數部分的最後三位元字,如n = 5, (3 + √5)5 = 3935.73982,那麼結果就應該是935,不足三位元字,則補零。(3 + √5)n+1與(3 + √5)n有遞推關係,用an+bn√5表示(3 + √5)n,那麼 α(n + 1) = (3 + √5)(an + bn√5) = (3an + 5bn) + (3bn + an)√5,可以寫成矩陣形式,在contest
Time of Update: 2018-12-05
繼續Round 1C 2009第二道題,多個物體的質心到原點最小距離。最後並且給出了質心的公式,x=sum(xi+xvi*t),...每個物體的品質都一樣,就不用考慮x=sum(mi*(xi+xvi*t))。最後距離的平方d=x^2+y^2+z^2=at^2+bt+c,一個關於t的二次多項式,求t>=0時的最小值。應該不難的,只是數值計算過程中會出現一些奇怪的問題。比如已經判斷b^2-4ac>=0,sqrt(c-b^2/4a)的時候卻提示出錯。另外,需要分情況討論求最小值。b>
Time of Update: 2018-12-05
前面說過的,有怎樣畫局部放大圖的,例如左邊放原圖,右邊放局部放大的圖,並且在原圖中用一個方框或者什麼,把要放大的部分框起來,需要的話還可以用兩條線從方框指向放大的圖,效果如所示,這裡主要介紹如何畫方框和兩條線。畫方框,使用了畫串連方框四個頂點的四條線段就可以了,從某個點繞個圈再回到起點,就畫出了方框,使用pyplot(x,y),還可以方便地指定顏色,線寬等。然後是畫跨子圖的線,這裡使用連接線,在matplotlib.patches有一個ConnectionPatch類型,就是用的這個,它可以用在
Time of Update: 2018-12-05
今天開啟cnblogs,看到園齡1年,才發現自己來這裡這麼長時間了。 從開始想到要建個Blog,在CSDN和cnBlogs中間選了好久,到決定使用cnBlogs,然後開始寫些東西,似乎還沒過去多久,卻竟然已經一年了。 數數Blog上的文章,如果不考慮這個月把Gooogle Code Jam上的練習題貼上來,也就二十多篇,一開始的時候寫了幾篇,後來課程比較多,想等暑假和寒假來整理一些內容,結果在假期裡沒有什麼動力去整理那些東西,園子似乎要荒蕪下來。直到這次Google Code
Time of Update: 2018-12-05
第6章,分治法,divide &
Time of Update: 2018-12-05
雖然只是寫了兩個測試例子,但我覺得其它的函數用起來也差不多,它提供的函數的介面有很好的一致性,例如每一個函數的第一個參數都是matrix_order,以n開頭的表示矩陣的列數,以ld開頭的表示矩陣的leading
Time of Update: 2018-12-05
繼續MilkShakes問題。之前是使用窮舉搜尋的方法,能保證結果的準確,但是效率較低,對於large
Time of Update: 2018-12-05
在使用pyplot畫圖的時候,有時會需要在圖上標註一些文字,如果曲線靠的比較近,最好還能用箭頭指出標註文字和曲線的對應關係。這裡就介紹文字標註和箭頭的使用。添加標註使用pyplot.text,由pyplot或者subplot調用。下面是可以選擇的參數,text(tx,ty,fontsize=fs,verticalalignment=va,horizontalalignment=ha,...)其中,tx和ty指定放置文字的位置,va和ha指定對其方式,可以是top,bottom,center或者l
Time of Update: 2018-12-05
之前沒搞定的幾道題先跳過了,來做做簡單的吧。Round 1A
Time of Update: 2018-12-05
第14章,隨機演算法,random algorithm。 隨機演算法,當演算法在執行過程中面臨一個選擇時,隨機行選擇常比最優選擇快,因此隨機演算法可以在一定程度上降低演算法的複雜度。 由於隨機過程的存在,對所求解問題的同一個輸入,可能得到完全不同的輸出。 隨機演算法一般分為四類,數值隨機演算法,蒙特卡羅(Monte Carlo)演算法,拉斯維加斯(Las
Time of Update: 2018-12-05
使用list, vector 等這些標準庫的類,尋找是比較常用的功能,但是這些類沒有提供find函數,因為對於自訂類型,它不知道如何去比較兩個類型。http://www.cppreference.com/wiki/container/list/start但是STL提供了一種通用的尋找函數find(iterator it0,iterator it1,target),下面介紹如何使用這個尋找函數。// 定義一個簡單的資料結構Inst.class Inst{public:
Time of Update: 2018-12-05
這次介紹Matplotlib裡面畫圖的結構,各種Artists。之前只是知道怎麼用pyplot畫圖,沒有去理解pyplot,現在整理一下自己的理解。在pyplot(或者是更全一點的matplotlib)裡面,有兩類Artists,一個是primitives,元素,表示我們想要畫出來的標準的映像對象,像Line2D(二維的曲線),Rectangle,Text,AxesImage等;另一個是containers,用來存放元素,如Axis,Axes和Figure.每個Artist有很多可以設定的屬性,
Time of Update: 2018-12-05
之前介紹了pyplot裡畫簡單的資料曲線,接下來介紹subplot相關的內容。subplot是為了在一張圖裡放多個子圖,與Matlab裡的subplot類似。pyplot是一個有狀態的對象,包含了當前的圖,畫圖地區,等。pyplot通過調用subplot或者add_subplot來增加子圖,如p1 = plt.subplot(211) 或者 p1 = plt.subplot(2,1,1),
Time of Update: 2018-12-05
繼續Round 1B 2010。第二道題沒理解題目,第三道題題目可以理解,但是演算法又折騰了好久。還是先看第三道題吧。給定一個集合S={2,3,...n},它的子集S' 滿足性質:n在S'中是第k個元素,那麼k應該也在S'中,同樣地,k是第k'個元素,那麼k'應該也在S'中,經過有限步,k=1,不在S'中,稱n對於S'是Pure Rank。那麼給定一個n,求S'的個數。在Content
Time of Update: 2018-12-05
還是MilkShakes的問題。今天看了一下Contest Analysis,按照提示總算得到了較好的結果。在Contest Analysis中,給出了演算法的描述,如下:1. 初始化flavor choice全為0,檢查customer的滿意情況;2. 對於不滿意的customer,如果他只喜歡unmalted的,但是所有的已經malted,那麼該customer不可能被滿足,給出IMPOSSIBLE;3.
Time of Update: 2018-12-05
動態規劃(Dynamic Programming)可以用來非常有效解決許多搜尋最佳化問題。這類問題都有相同的地方,原問題可以分解為子問題,子問題中有重複的部分(overlapping subproblem),或者原問題的最優解與子問題的最優解具有相同的結構(optimal
Time of Update: 2018-12-05
連續碰到幾道題搞不定,想找一道簡單一點的,來增加一點成就感。於是看了這道題,第一道題,雖然是C輪的,應該不會太難吧?但看完題就知道自己錯了,為什麼連題都看不懂呢?無奈,求助答案吧。答案好簡單,連Python代碼都給了。還是簡單分析一下吧。先來解釋題目意思,題目給出一個字串,包含a-z0-9,表示一個數字,這個數位基數base可以是任意的,要求選一個基數,使字串表示的數最小,並且第一位不為0。怎樣可以使基數最小呢?base=10,即十進位,有0-9種表示0-9,也可以用a-j表示0-9,反正就是要
Time of Update: 2018-12-05
iterator1.erase//刪除一個元素iterator erase(const_iterator pos);//刪除一組元素, 範圍 [first, last), 半閉半開區間iterator erase(const_iterator first, const_iterator last);兩種情況都有傳回值,返回最後被刪除元素的後面一個的iterator.一個簡單的測試vector<int> ak(6);unsigned int i = 0;for(i=0;i<ak.
Time of Update: 2018-12-05
好久沒做事情,也就沒什麼內容可更新的。這兩天開始做事情了,問題就不斷地出現了,就連使用標準的complex類都出問題。先說說問題吧。xxxx.cpp: In member function ‘void xxxx::xxxxxxxx()’:xxxx.cpp:100: error: ISO C++ forbids declaration of ‘type name’ with no typexxxx.cpp:100: error: expected primary-expression
Time of Update: 2018-12-05
之前看到一個關於BFS核心補丁的介紹,感覺很強大,便想試著給在用的Ubuntu10.4的核心升級一下,來體驗一下到底能多快。可惜折騰了一個下午也沒成功。後來聽說Ubuntu11.04會整合這個補丁,便開始期待Ubuntu11.04的早一點到來。 前幾天,Ubuntu11.04發布了。學校的ftp上也有鏡像可以下載了。於是下載下來,幾分鐘的時間。接下來便是從硬碟安裝了。 網上有比較多的Ubuntu從硬碟安裝的教程了,於是照著做一遍,可惜出問題了。有一個比較詳細的使用EasyBCD的安裝教程