Codeforces Round #601 (Div. 2) E2. Send Boxes to Alice (Hard Version) 思维 + 质因子
傳送門
文章目錄
- 題意:
- 思路:
題意:
大體題意跟easyeasyeasy版本差不多,就是hardhardhard版本的aaa范圍更大。見這里Codeforces Round #601 (Div. 2)
思路:
首先還是考慮質因子分解,因為一個數被分成以xyxyxy為一組一定不如分成xxx組或者yyy組,所以只需要以質因子分組就好啦。
讓后貪心的考慮,假設當前質因子為basebasebase,那么我們肯定是把當前這個數的a[i]modbasea[i]\bmod basea[i]modbase給a[i+1]a[i+1]a[i+1]或者從a[i+1]a[i+1]a[i+1]獲得base?a[i]modbasebase-a[i]\bmod basebase?a[i]modbase,這樣就可以忽略前面的數,把a[i+1]a[i+1]a[i+1]當成第一個數。那么第一個式子列出來就是a[i+1]=(a[i+1]+a[i])modbasea[i+1]=(a[i+1]+a[i])\bmod basea[i+1]=(a[i+1]+a[i])modbase,第二個式子列出來就是a[i+1]=(a[i+1]?(base?a[i]modbase))modbasea[i+1]=(a[i+1]-(base-a[i]\bmod base))\bmod basea[i+1]=(a[i+1]?(base?a[i]modbase))modbase,讓后化簡一下就是a[i+1]=(a[i+1]+a[i])modbasea[i+1]=(a[i+1]+a[i])\bmod basea[i+1]=(a[i+1]+a[i])modbase,讓后這樣遞推下去就好啦。對于每個數我們只需要兩種情況取minminmin即可,也就是min(pre,base?pre)min(pre,base-pre)min(pre,base?pre),preprepre為模basebasebase情況下的前綴和。
總結
以上是生活随笔為你收集整理的Codeforces Round #601 (Div. 2) E2. Send Boxes to Alice (Hard Version) 思维 + 质因子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 已备案驾驶证是什么意思被扣了12分(已备
- 下一篇: 牛客 CCA的区间 dp + 补集转移