2019 杭電多校 HDU 6623

2021-09-25 22:50:20 字數 1041 閱讀 6556

minimal power of prime

題意:讓你把乙個數質因數分解,輸出所有質因數指數的最小值。

這個題還是挺有意思的,解題思路也比較好玩。

思路:先預處理出10000以內的素數預處理出來。對於每乙個 n ,我們先處理它10000以內的質因數,那麼剩下的質因數的指數就不可能超過4,單獨判斷即可;

為什麼不會超過4呢

當我們選出10000以內的所有質因數之後,那麼剩下的因數必然大於10000,並且都是質因數,假設它是乙個合數,那麼一定可以被分解,分解出的小於10000的質數在之前就已經被處理了,所以這個時候就不可能存在了, 而104

4}^

1044

就是1 016

10^10

16了,1 04

5}^

1045

就是1 020

10^10

20了,所以必然不會超過4;

小提示:對於4次和二次的判斷可以直接使用sqrt函式,而三次需要我們手寫乙個二分去判斷,我嘗試過使用pow函式,但是wr了,可見pow的進度還是存在問題的,相比之下sqrt就比較友好了。

#include

using namespace std;

#define ll long long

const

int n =

10000+10

;ll n, t;

ll p[n]

, prime[n]

,cnt;

void

init()

}ll slove

(ll x)

return l;

}int

main()

}if(n > p[cnt -1]

)printf

("%d\n"

,ans);}

return0;

}

2019杭電多校 HDU 6695 貪心

題解 分成兩組,其中一組最大的x 另一組最大的y 絕對值最小 題解 按照x從小到大排序,列舉最大x,比x大的都放到另一組,每處理完y記錄一下,然後從前面找到大於x和小於x的最符合的,判斷一下是否可取,然後就是很多x相等的,找乙個y最符合的 include using namespace std ty...

2019杭電多校第五場

有兩個題隊友補的,先安利一波 1005 permutation 1 hdu 6628 題意 給你乙個n和k,求n的全排列中,相鄰兩數的差值的陣列字典序第k小的排列 思路 其實就是兩個字,暴力.字典序第k小,k的範圍是n!跟10000取min,8!40320,是第乙個大於10000的數,所以當n小於等...

2019 杭電多校(第九場)

1002 rikka with cake 思維 題意給你乙個蛋糕 問你切k刀後分成多少塊 思路塊數 交點數 1 樹狀陣列維護橫線有多少條 豎線去統計 隊友 include define ll long long using namespace std struct code tree 500005 ...