小記:git
此次校預賽,基友拿Java敲了4題,我用C++敲了4題,Python敲了1題(一個美麗的錯誤)。網絡
題目都比較基礎,有些數據太水,好比E的裸DP未優化AC,再如F的網絡流居然AC(我本身都驚呆了T^T)。優化
題外話:ip
昨天CodeJam打了滿分,好高興,畢竟我是半年沒碰過C++的僞新手,嗯嗯~心態好纔是真的好~ci
小夥伴們,加油啊~it
相信代碼相信愛~基礎
Problem A: SRTP方法
求和比較。im
Problem B: 2048統計
以R指令爲例(L、U、D可經過旋轉轉化):
每行單獨處理,移動規則爲儘量靠右,合併規則爲優先合併右側的兩個。
可合併兩組的特殊狀況如:2 2 1 1合併後爲0 0 4 2。
Problem C: What's Her Name?
統計某個逗比名字中各個字母的個數,再根據水桶效應,取最小值。
對於單個名字出現2次且不能頂針的n,須要把個數除以2後,再與其餘比較。
Problem D: Skip Classes
統計:類型1的天數記爲a,類型2的天數記爲b=b1(早上)+b2(下午)。
答案爲min[max(a+b1-m,0)+max(b2-k,0)]。
Problem E: Sequence
用d[i][j]表示以j結尾的長度爲i的序列,DP狀態轉移方程:d[i][j]=d[i-1][p](p爲j的因子,預處理獲得全部的因子表)。
答案爲Sum(d[n][1~k])。
Problem F: Share Candies
沒有想到貪心方法,使用網絡流的最大流最小費僥倖AC。
定義比平均值大的點爲富足點,反之爲貧窮點。對於每一個富足點與貧窮點,建邊,容量爲富足點多餘的糖果數,花費爲富足點與貧窮點在環上的圓缺距離。超級源點與全部富足點鏈接,全部貧窮點與超級匯點鏈接。
答案爲源點到匯點的最小費。
Problem G: Fibonacci Prime
預處理前80個Fibonacci數,根據互素原則,獲得前20個Fibonacci Prime。
Problem H: A + B Again
抽象小數模型爲:a.b(c),其中a、b、c位數不定,tb、tc表示10的(b、c部分對應長度)次冪。
引理:x=0.(c),tc*x=c.(c)=c+x,獲得x=c/(tc-1)。
答案爲(a*tb+b+c/(tc-1))/tb=((a*tb+b)*(tc-1)+c*tb)/(tb*(tc-1))。
Problem I: Digits' Sum
模擬後各位求和。