傳送門題意: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...