AC代碼git
若\(a < b\),則\(LCM(a,b)\)是\(a\)的整數倍且\(LCM(a,b) \ne a\),因此\(LCM(a,b) \ge 2a\),當且僅當\(b=2a\)時取等號。github
根據這個性質,就能夠讓\(a=l, b = 2l\),若是符合條件就輸出,不然無解。spa
這題暴力+貪心作。字符串
根據貪心,答案一定取在在同一個位置左右橫跳的狀況下。get
因爲\(z\)的取值很小,因此直接枚舉走到第\(i\)個位置以後左右橫跳\(c\)次的收益,而後再加上走完剩餘步數的收益,取最大值爲答案。string
注意,剩餘步數爲\(1\)且\(c<z\)時要考慮向左走的狀況。it
易得,字符串符合條件\(\Leftrightarrow\)字符串有長度爲2的循環節。io
而後就暴力枚舉循環節,每次遍歷一遍字符串計算代價,代價的最小值就是答案。ast
注意,僅當循環節的兩個字符都同樣時才能夠不徹底循環。class
首先,若是\([l1,r1]\)和\([l2,r2]\)相交,那麼就能夠不耗費步數增長\(I\)。
而後,若兩個線段不相交,則耗費必定的步數以後,能夠到達兩個線段相交的狀態。
在兩個線段相交但不徹底相等的狀況下,耗費1步能夠使\(I\)增長1,直到兩個線段徹底相等。
最後,在兩個線段徹底相等以後,就只能耗費2步使\(I\)增長1。
而後,就是快樂的模擬過程了,優先使用耗費步數低的操做,直到\(I>k\)。