一本通1624櫻花

2022-05-08 01:54:13 字數 3804 閱讀 7587

時間限制: 1000 ms         記憶體限制: 524288 kb

原題來自:hackerrank equations

求不定方程: 1x+

1y=1

n!'>1/x + 1/y = 1/n!

的正整數解 (x,y

'>x,

y)的數目。

乙個整數 n

'>n

。乙個整數,表示有多少對 (x,y

'>x,y

) 滿足題意。答案對 109+

7'>109

+7取模。

2

3
樣例說明

共有三個數對 (x,y

'>x,y

) 滿足條件,分別是 (3,

6),(

4,4)

'>(3,6),(4,4)

和 (6,3

)'>(6,3

)。對於 30% 的資料,n

≤100

'>n

≤100;

對於全部資料,1≤n

≤106'>1≤n≤106。1

≤n≤10

6'>sol:好一道坑人的普及

題,表示我就是被坑爆的蒟蒻1≤

n≤106

'>隨便拆一下式子可得

原式:1/x + 1/y = 1/n!

--> (x+y) / (x*y) = 1/n!

--> (x+y)*n! = x*y

--> x*n!+y*n! = x*y

--> x*y-x*n! = y*n!

--> x*(y-n!) = y*n!

--> x = (y*n!) / (y-n!)

易知 x>n!, y>n! 令y=n!+t

--> x = (n!+t)*n! / t

--> x = (n!*n!) / t + n!

就是求(n!*n!)的約數個數

然後我就暴力分解質因數,tle。。。tle。。。tle。。。

/*

原式:1/x + 1/y = 1/n!

--> (x+y) / (x*y) = 1/n!

--> (x+y)*n! = x*y

--> x*n!+y*n! = x*y

--> x*y-x*n! = y*n!

--> x*(y-n!) = y*n!

--> x = (y*n!) / (y-n!)

易知 x>n!, y>n! 令y=n!+t

--> x = (n!+t)*n! / t

--> x = (n!*n!) / t + n!

就是求(n!*n!)的約數個數

*/#include

using

namespace

std;

typedef

long

long

ll;inline ll read()

while

(isdigit(ch))

return (f)?(-s):(s);

}#define r(x) x=read()inline

void

write(ll x)

if(x<10

)

write(x/10

); putchar((x%10)+'0'

);

return;}

#define w(x) write(x),putchar(' ')

#define wl(x) write(x),putchar('\n')

const

int mod=1000000007

;const

int n=1000005

;int

n;bool

bo[n];

intprim[n],pos[n];

ll ges[n];

inline

void

get_prime()

for(j=1;j<=*prim&&prim[j]*i<=n;j++)

}}int

main()

}if(oo>1) ges[pos[oo]]++;

}for(i=1;i<=*prim&&prim[i]<=n;i++)

ll ans=1

;

for(i=1;i<=*prim&&prim[i]<=n;i++)

wl(ans);

return0;

}/*input

2output

3input

5output

63input

999998

output

501065738

*/

暴力然後發現可以這樣統計個數

for(i=1;i<=*prim;i++)

ges[i]=(ges[i]<<1)%mod;

}

為我的智障默哀。。。

/*

原式:1/x + 1/y = 1/n!

--> (x+y) / (x*y) = 1/n!

--> (x+y)*n! = x*y

--> x*n!+y*n! = x*y

--> x*y-x*n! = y*n!

--> x*(y-n!) = y*n!

--> x = (y*n!) / (y-n!)

易知 x>n!, y>n! 令y=n!+t

--> x = (n!+t)*n! / t

--> x = (n!*n!) / t + n!

就是求(n!*n!)的約數個數

*/#include

using

namespace

std;

typedef

long

long

ll;inline ll read()

while

(isdigit(ch))

return (f)?(-s):(s);

}#define r(x) x=read()inline

void

write(ll x)

if(x<10

)

write(x/10

); putchar((x%10)+'0'

);

return;}

#define w(x) write(x),putchar(' ')

#define wl(x) write(x),putchar('\n')

const

int mod=1000000007

;const

int n=1000005

;ll n;

bool

bo[n];

intprim[n],pos[n];

ll ges[n];

inline

void

get_prime()

for(j=1;j<=*prim&&prim[j]*i<=n;j++)

}}int

main()

ges[i]=(ges[i]<<1)%mod;

}ll ans=1

;

for(i=1;i<=*prim&&prim[i]<=n;i++)

wl(ans%mod);

return0;

}/*input

2output

3input

5output

63input

999998

output

501065738

*/

view code

佇列(一本通)

這道題重點是關係的轉換和初始化 include include include includeusing namespace std int a 101 記錄接著的的那個節點 int n,m int main int ans void bfs int x,int y int main cout in...

情感修煉一本通

實踐準則 經驗親密關係構成要素 了解 關心 相互依賴性 相互一致性 信任以及承諾 親密的伴侶彼此間有著廣泛而私密的了解。他們熟知彼此的經歷 愛好 情感和心願,而且一般不會把這些資訊透露給其他人。親密的伴侶關心對方,彼此能從對方身上感受到更多的關愛。如果人們認為自己的伴侶了解 理解並欣賞自己,其親密程...

一本通 確定進製

注意一些細節問題就可以了。1 餘數必定小於進製數 2 注意判斷數字範圍 1 p,q,r 1000000 開始以為p q會很大,但是實際 p q 1000000 因為p q r 10000000 所以,本身沒有必要使用高精度,但是如果本題目使用高精度來計算。則需要運用大整數的相關技巧來解決這個問題了。...