有趣的數(number)
題目描述
這些天nodgd
在研究一類有趣的數。定義函式 f(n) f(n) f(n) 表示 n n n 在十進位制表示下的數字之和。如果乙個正整數 n n n 滿足 f(n)∣n f(n) \vert n f(n)∣n ,則nodgd
認為 n n n 是有趣的。
例如:3 3 3,7 7 7,12 12 12,84 84 84,111 111 111,這些數都是有趣的。顯然有趣的數很多,於是nodgd
想知道不超過 n n n 的所有正整數中有多少個是有趣的。
輸入格式
輸入只有一行,包含乙個正整數 n n n。
輸出格式
輸出只有一行,包含乙個整數,表示答案。
樣例樣例輸入 1
11
樣例輸出 1
10
【樣例解釋 1】
不超過 11 11 11 的所有正整數中,只有 11 11 11 不是有趣的。
樣例輸入 2
12345678
樣例輸出 2
1017860
資料範圍與提示
對於 10% 10 \% 10% 的資料,n≤106 n \leq 10^6 n≤106;
對於 30% 30 \% 30% 的資料,n≤109 n \leq 10^9 n≤109;
對於 60% 60 \% 60% 的資料,n≤1012 n \leq 10^ n≤1012;
對於 100% 100 \% 100%的資料,1≤n≤1018 1 \leq n \leq 10^ 1≤n≤1018。
solution
10^18考慮數字dp
由於數字和不超過162,我們可以先列舉他。
記f[i][x][y][0/1]表示前i位,數字和x,前i位模完為y,是否頂滿。
考場我有個變數沒開ll,悲傷的故事
1 #include2 #include3 #include4 #include5 #include6 #include7view code#define ll long long
8using
namespace
std;
9 ll n,f[19][180][180][2],p[20
],ans;
10int sum,tp,n[20
];11 ll dfs(int i,int x,int y,bool
ful)
19return
s;20}21
for(int t=0;t<10;t++)
25return
s;26}27
intmain()
2837 cout
38return0;
39 }
3762 有趣的數(number)
題意 記憶體限制 256 mib 時間限制 2000 ms 這些天nodgd在研究一類有趣的數。定義函式 f n f n f n 表示 n nn 在十進位制表示下的數字之和。如果乙個正整數 n nn 滿足 f n nf n vert n f n n 則nodgd認為 n nn 是有趣的。例如 3 3...
ccf 有趣的數
問題描述 我們把乙個數稱為有趣的,當且僅當 1.它的數字只包含0,1,2,3,且這四個數字都出現過至少一次。2.所有的0都出現在所有的1之前,而所有的2都出現在所有的3之前。3.最高位數字不為0。因此,符合我們定義的最小的有趣的數是2013。除此以外,4位的有趣的數還有兩個 2031和2301。請計...
ccf有趣的數
有趣的數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 我們把乙個數稱為有趣的,當且僅當 1.它的數字只包含0,1,2,3,且這四個數字都出現過至少一次。2.所有的0都出現在所有的1之前,而所有的2都出現在所有的3之前。3.最高位數字不為0。因此,符合我們定義的最小的有趣的數是...