zoukankan      html  css  js  c++  java
  • 【洛谷 1988】火炬

    题目描述

    2008北京奥运会,你想成为四川汶川的一名火炬手,经过层层选拔,终于到了最后一关,这一关是一道很难的题:任意给定一个正整数N(N<=100000),求一个最小的正整数M,使得N * M的十进制表示形式里只含有1和0。

    输入格式

    一行,输入一个整数N。

    输出格式

    输出一行,如果有解,输出最小的M,否则输出“No Solution”

    输入输出样例

    输入 #1
    12
    输出 #1
    925

    题解;bfs(或dfs)的进制转换。
    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    typedef long long ll;
    using namespace std;
    ll n,t,a[1000002];
    void dfs(ll x){
        a[++t]=x;
        if(x>9e17)return;
        for(int i=0;i<=1;i++)
            dfs(x*10+i);
    }
    int main(){
        //freopen("1988.in","r",stdin);
        //freopen("1988.out","w",stdout);
        scanf("%lld",&n);
        dfs(1); sort(a+1,a+1+t);
        for(int i=1;i<=t;i++)
            if(a[i]%n==0)
               { cout<<a[i]/n; return 0; }
        printf("No Solution");
    }
  • 相关阅读:
    c语言 9-3
    c语言 9-12
    c语言 9-11
    c语言 9-10
    c语言中实现字符串大小写的转换
    tyvj1106 登山
    tyvj1125 JR's chop
    tyvj1148 小船弯弯
    tyvj1087 sumsets
    tyvj1086 Elevator
  • 原文地址:https://www.cnblogs.com/wuhu-JJJ/p/11788768.html
Copyright © 2011-2022 走看看