數論 洛谷 P1362 兔子數

2021-08-02 18:34:59 字數 557 閱讀 3068

我看到的時候一點頭緒都沒有汗

number 這題告訴你s(a*a)=s(a)*s(a)且a*a<10^18

所以s(a*a)<18*9<13*13 即s(a)<13

搜尋+適當剪枝即可

證明乙個定理:

rabbit number的各位數字一定<=3

若某數字x的一位,a>=4

那麼它在該位的貢獻是a^2的

而在x中該位自乘進了一位

故貢獻為 a^2/10+a^2%10

#include

#define ll long long

using namespace std;

int a[10];

int ans,l,r;

intget(ll a)

void check()

void dfs(int x)

for(int i=0;i<=3;i++)a[x]=i,dfs(x+1);

}int main()

洛谷 P1362 兔子數

題目描述 設 s n 表示 n 的各位數字之和,如 s 484 4 8 4 16,s 22 2 2 4。如果乙個正整數滿足 s x x s x s x 我們稱之為 rabbit n umber。比方說,22 就是乙個 rabbit n umber,因為 s 484 s 22 s 22 現在,給出乙個...

洛谷 P1362 兔子數

設 s n 表示 n 的各位數字之和,如 s 484 4 8 4 16,s 22 2 2 4。如果乙個正整數滿足 s x x s x s x 我們稱之為 rabbit n umber。比方說,22 就是乙個 rabbit n umber,因為 s 484 s 22 s 22 現在,給出乙個區間 l,...

LuoGu題解 P1362 兔子數

依題意模擬暴力打表找規律,注意到 符合題意的數中只包含 0,1,2,3 大於 3 的數,平方後都會進製,進製導致 s x s x 觀察資料範圍,最大滿足題意的數字有 10 位,那麼我們列舉每一位上的數字,然後暴力判斷是否為兔子數就行了。code include include include inc...