牛客挑戰賽46 B最小的指數

2022-05-10 22:39:17 字數 682 閱讀 7402

傳送門題意:1e6次詢問,每次給你乙個1e18的數問你質因數分解後的所有質因數中的指數冪中最小的是多少。

題解:將4000以下的素數預處理,然後分解n,若剩餘值等於1說明已完全分解,若大於1,也易知其剩餘最小質因數指數冪不超過4,便如下分類討論。

1.若為4,則必為x^4==n;

2.若為3,則必為x^3==n;

3.若為2,則必為x2==n或(a*b)2==n;

4.否則為1。

#include#include#includeusing namespace std;

#define ll long long

const ll maxn = 4e3;

ll prime[maxn+7],t,n;

void solve() }}

int main()

ll ans=1e9,now;

for(int i=1;i<=prime[0];i++)

ans=min(ans,now);

}} if(n!=1)

else if(lin3*lin3*lin3==n)

else if(lin2*lin2==n)

else

ans=min(now,ans);

} printf("%lld\n",ans);

}}

牛客挑戰賽46 B 最小的指數

給出乙個數 x 將它分解質因數成 prod p i a i 0 求 min a i t le 10 5 x le 10 pollard rho顯然過不去。先將 4000 以內的質數都暴力做一遍,如果遇到了 x 的因數計算一下。對於剩餘的質數,ans 不會大於等於 5 因為 4000 5 10 那麼 ...

牛客挑戰賽58

前i 1的二進位制相等,a的前n個數的前i 1位可以亂取,b的前n 1個數前i 1位也可以亂取,因為b的第n個數的前i 1異或可為任意值,所以sum1 2 i 1 n 2 i 1 n 1 2 i 1 2n 1 a的第i位為1且b的第i位為0 只要a的n數第i位中有乙個不為0的,a的第i位不為0,b的...

牛客挑戰賽38 B 子串翻轉

題目鏈結 思路 用乙個大小為m雙端佇列的雙端佇列 維護一下當前視窗的串是啥。翻轉就是把標記變一下。根據標記進行字元的進出。include using namespace std typedef long long ll const int n 3e6 10 define fi first defin...