Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
#include
using namespace std; int main() { ios_base::sync_with_stdio(false); string s; cin >> s; vector
digits(10, false); for(int i = 0; i < (int) s.size(); i++) { digits[s[i] - '0'] = true; } int n; cin >> n; vector
dp(5005, 1e9); for(int i = 0; i <= 5000; i++) { int tmp = i; bool ok = true; int cnt = 0; while(tmp > 0) { int digit = tmp % 10; if(!digits[digit]) { ok = false; break; } tmp /= 10; cnt++; } if(ok) { dp[i] = cnt; } } for(int i = 0; i <= 5000; i++) { for(int j = 0; j <= 5000; j++) { if(dp[i] != 1e9 and dp[j] != 1e9) { dp[min(i * j, 5000)] = min(dp[min(i * j, 5000)], dp[i] + dp[j] + 1); } } } for(int i = 0; i <= 5000; i++) { for(int j = 0; j <= 5000; j++) { if(dp[i] != 1e9 and dp[j] != 1e9) { dp[min(i + j, 5000)] = min(dp[min(i + j, 5000)], dp[i] + dp[j] + 1); } } } cout << dp[n] << endl; return 0; } /* 5 2 2 0 1 1 0 1 0 1 1 1 13 4 3 1 1 3 2 0 1 2 0 0 0 0 3 1 0 2 2 1 1 2 5 3 1 1 2 0 1 2 0 2 **/
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)