The 10th SWJTU ACM Online Tutorial

小記: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

模擬後各位求和。

相關文章
相關標籤/搜索