nssl1458 HR 的疑惑 列舉

2021-10-09 02:10:41 字數 912 閱讀 7087

給出n

nn,求[

1..n

][1..n]

[1..n]

中有多少個數可以被ab(

b>1)

a^b(b>1)

ab(b

>1)

表示首先如果b

bb等於2

22,那麼可以被表示的數就是n

\sqrt n

n​個b

bb不是質數時,顯然所以的數都可以被乙個b

bb是質數的情況表示。

當b

bb大於等於三時,a

aa的個數級別不超過106

10^6

106,所以我們列舉後面的數。

需要考慮重複如43=

82

4^3=8^2

43=8

2,其實這個重複本質上就是(22

)3=(

23)2

(2^2)^3=(2^3)^2

(22)3=

(23)

2,也就是說如果a

aa可以表示為kq(

q

k^q(qkq

(q時,那麼a

ba^b

ab一定已經被計算過了

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

ll n,ans;

bool v[

100]

,m[1000100];

intmain()

printf

("%lld"

,ans)

;}

1458 士兵占領 BZOJ

description 有乙個m n的棋盤,有的格仔是障礙。現在你要選擇一些格仔來放置一些士兵,乙個格仔裡最多可以放置乙個士兵,障礙格里不能放置士兵。我們稱這些士兵占領了整個棋盤當滿足第i行至少放置了li個士兵,第j列至少放置了cj個士兵。現在你的任務是要求使用最少個數的士兵來占領整個棋盤。inpu...

poj1458解題報告

最長公共字串匹配 看到他們的寫的很短很精練,真心感覺自己寫不出來,我就走我的平淡路線吧!include include using namespace std int substr 201 201 記錄到當前位置的最大匹配數 string str1,str2 intmmax int a,int b ...

BZOJ 1458 士兵占領

time limit 10 sec memory limit 64 mb submit 632 solved 366 submit status discuss description 有乙個m n的棋盤,有的格仔是障礙。現在你要選擇一些格仔來放置一些士兵,乙個格仔裡最多可以放置乙個士兵,障礙格里不...