Codeforces Round #209 (Div. 2)賽後補題

這一場又是作死地從C題開始做,終於在比賽時把一道題做了兩個小時...

A. Table

判斷有沒有點在邊界上即可。


B. Permutation

令a[2*i-1]=2*i.a[2*i]=2*i-1.表達式的每一項均爲1.要使兩個表達式的差產生2*k,只要有k項大小顛倒,就會有k*(1-(-1))=2*k

直接交換前k項a[2*i-1]與a[2*i]的值即可。


C. Prime Number

比賽時看到題目是素數就直接點了進去,誰知道是一條不歸路。。。

從小到大維護提取的x^m*(x^p1+x^p2+x^p3)即可。

易知當括號裏面指數爲0的項的數量不是x的整數倍時,不可能完整的提取x

否則就把指數爲0的項變爲以前的1/x,然後括號裏其他係數相應的減少1,進行下一步提取,直到不能提取爲止.

注意由於是要求上下兩式的最大公約數,所有最大公約數不能大於x^(a1+a2+a3+..+an)


D. Pair of Numbers

因爲代碼寫的太搓,沒想到因爲數字全部相等的時候會tle...以後找不到思路的問題時去多看看初始化的地方...切記。


對於每個未被標記的數字,把從它開始後面連續的能被它整除的數全部標記。這樣那些被標記的數顯然不用再考慮。然後從後往前掃,對於每個未被標記的數,可通過後面連續的標記統計出被他整除的且處於它右邊的共有多少個,然後在判斷其前面有多少個連續且被他整除的數,累加就是區間長度+1。有數組記錄被該數整除的區間左下標,並且維護l-r的最大值即可。







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