Codeforces Round #411(A. Fake NP; B. 3-palindrome; C. Find Amir; D.Minimum number of steps)

A. Fake NP
題解:給定一個閉區間的兩個端點,試判斷在此區間內所有數字的非1公因子出現最多的數字。如果有多個,給出其中一個就可以了。這道題比較討巧的方法試直接輸出2。
B. 3-palindrome
題解:題目要求用由‘a’,‘b’‘c’三個字母組成給定長度的字符串,其中不能包含長度超過三的子迴文串,同時要保證‘c’的使用儘可能少。
本題只需要根據給定長度是否爲3的倍數就可以分情況討論,得出當前的一種可能解。
C. Find Amir
題目:有N個孤立的點從1~n編號,使任意兩個點相連的成本爲(i+j)mod(n+1),如果要使N個孤立的點最終能連成一張網絡,求最小花費。
題解:觀察發現mod的爲n+1,可以發現,當N爲偶數時,將1與n一組,2與(n-1)一組,以此類推,每組內部相連不需要花費,而在每組之間進行連接時,啊發現2可以與n相連,3與n-1相連,以此類推。最終費用爲n/2-1.如果n爲奇數時,仍可以首位對摺分至一組,中間的自己一組,這樣每組組內相連花費爲1,組間相連成本也爲1,因此最終花費爲n/2
D. Minimum number of steps
題目:給出一串由‘a’,‘b’組成的字符串,其中的“ab”會被轉化成爲“bba”,問對於給定字符串可以進行幾次這樣的操作
題解:
這道題是一道找規律題,每一個ab都將會變成bba,也就是將a移至b後面,再增加一個b。分析第二個樣例,發現a…ab…ba…ab…b中後面產生的b會對前面a的轉移產生影響,每有一個a移至b後將會使b的數量增多一倍,因此可以從末尾開始計算生成b的數量,遇到一個普通的b數量+1,遇到一個a因爲它會讓b的數量翻倍,因此要使數量x2.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章