魔法石的诱惑

题目描述:

修罗王远远地看见邪狼狂奔而来,问道:“慌慌张张的跑什么?”
邪狼大口大口的喘气:“我路过一家魔法石店,看到摆着那么多高阶魔法石,我就跑进去抢了一大袋。”
修罗王怒道:“光天化日,朗朗乾坤,众目睽睽之下,你也敢抢?”
邪狼:“我抢魔法石的时候,压根就没看见人,眼里只看见魔法石了”
修罗王:“……”

其实邪狼的贪婪很容易理解,因为高阶魔法石有一个特征,即它的重量进行阶乘运算后末尾有几个0,就拥有同等重量的普通魔法石几倍的魔法力。例如5!=5*4*3*2*1=120,而120结尾包含1个零,这意味着该魔法石拥有同等重量的魔法石 1 倍的魔法力。你的任务是找到最小自然数 N ,使 N!在十进制下包含 Q 个零。

输入格式:

一个数Q(0 <= Q <= 10^8 )。

输出格式:

如果无解,输出“No solution”,否则输出 N 。

输入示例:

2

输出示例:

10

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>

using namespace std;

inline int read(){
    int x=0,f=1;char ch=getchar();
    for(;!isdigit(ch);ch=getchar()) if( ch == ‘-‘ ) f=-1;
    for(;isdigit(ch);ch=getchar()) x=x*10+ch-‘0‘;
    return x*f;
}

const int maxx = 1000000000;

int n, ans;

int count(int num)
{
    int count = 0;
    for(; num >= 5; num /= 5) count += num / 5;
    return count;
}

int main(){
    n = read();
    int left=1,right=1000000000,ans=500000001;
    while(left <= right)
    {
        int mid=(right+left) / 2 , cnt = count(mid);
        if(cnt == n && mid < ans) ans = mid;
        if(cnt > n){
            right = mid - 1;
        }
        else if(cnt < n){
            left = mid + 1;
        }
        else if(cnt == n){
            right = mid - 1;
        }
    }
    if(ans == 500000001) puts("No solution");
    else printf("%d\n",ans);
}
时间: 2024-12-20 09:18:09

魔法石的诱惑的相关文章

【分治】魔法石的诱惑

问题 C: [分治]魔法石的诱惑 时间限制: 1 Sec  内存限制: 128 MB提交: 88  解决: 37[提交] [状态] [讨论版] [命题人:admin] 题目描述 修罗王远远地看见邪狼狂奔而来,问道:"慌慌张张地跑什么?" 邪狼大口大口地喘气:"我路过一家魔法石店,看到摆着那么多高阶魔法石,我就跑进去抢了一大袋." 修罗王怒道:"光天化日,朗朗乾坤,众目睽睽之下,你也敢抢?" 邪狼:"我抢魔法石的时候,压根儿就没看见人,眼

10喵哈哈村的魔法石

题目传送: 描述 传说喵哈哈村有三种神奇的魔法石:第一种魔法石叫做人铁石,拥有A的能量:第二种魔法石叫做地冈石,拥有B的能量:而第三种,则是最神奇的天玄石,拥有无可比拟的C的能量! 但是有一天,沈宝宝太调皮了,把一颗天玄石玩丢了-- "这可玩大发了,这样我会被天行廖责备的."沈宝宝悲伤的说到,"怎么办呢?" 这时候沈宝宝望了望窗外的飞过的白鸽,突然急中生智,想到了一个办法:干脆就用人铁石和地冈石把天玄石凑出来吧! "只要我拿若干个人铁石,若干个地冈石,他们

魔法石之恋

[问题描述] 在<Harry Potter and the Sorcerer's Stone>中,想得到魔法石,必须要通过许许多多的测试和游戏.现在阿不思·邓布利多认为这些游戏都具有魔法力,魔法师们能够轻松的通过,我们要增加一些只能够通过智力解决的题目,需要真正的聪明人才能够通过.现在由于我们敬爱的Harry Potter同学时间有限,需要你的帮助,请你帮助他来解决这个问题.必须要在伏地魔之前得到魔法石,这样才能够保护魔法界的安全. 游戏的规则如下: 现有一游戏,玩它时将会有方块有顺序的从屏幕

RQNOJ魔法石之恋

魔法石之恋 (stone.pas/c/cpp) [问题描述] 在<Harry Potter and the Sorcerer's Stone>中,想得到魔法石,必须要通过许许多多的测试和游戏.现在阿不思·邓布利多认为这些游戏都具有魔法力,魔法师们能够轻松的通过,我们要增加一些只能够通过智力解决的题目,需要真正的聪明人才能够通过.现在由于我们敬爱的Harry Potter同学时间有限,需要你的帮助,请你帮助他来解决这个问题.必须要在伏地魔之前得到魔法石,这样才能够保护魔法界的安全. 游戏的规则如

洛谷 P2559 [AHOI2002]哈利&#183;波特与魔法石

P2559 [AHOI2002]哈利·波特与魔法石 题目描述 输入输出格式 输入格式: 文件中第一行有七个数,分别是 S1. S2 . …. S7 :第二行有两个数,依次分别是起点城市 i 和终点城市 j :第三行有一个正整数 c ,c<=10000, 表示随后的 c 行中每行存放了一对能直接通达的城市的信息. 能直接通达的城市的信息由三个数组成, 依次分别是两个城市的编号和这两个城市之间的地形.城市的编号都是不超过 100 的正整 数, 但是各个城市的编号未必连续. 文件里同一行中相邻的两个数

题解[AHOI2002]哈利&#183;波特与魔法石

题目传送门 这是一道很经典的最短路问题 因为数据范围较小,所以不用邻接表的SPFA也不会MLE #include<bits/stdc++.h> using namespace std; int a[120][120]; //a[i][j]代表从i到j的路程(-1表示没路) int h[8] = {0,2,6,4,8,6,10,14}; //h代表每种地形所需时间 queue<int> q; //队列 int s,e;//起点和终点 int dis[120]; //dis[i]代表点

自我练习 - 分治算法

2017-08-21 19:38:32 writer:pprp /* theme:第一章 - 分治算法 name:魔法石的诱惑 writer:pprp description:给你Q(0<=Q<=10^8),问你最小的自然数N使N的阶乘在十进制下包含Q个0 input:Q output: N date:Monday 2017/8/21 */ #include <bits/stdc++.h> using namespace std; const int maxn = 50000000

微软魔镜——从“解语花”到“读心树”的神奇魔法

所有看过<白雪公主>的童鞋们,小时候一定都曾经幻想过拥有一面恶王后的通灵"魔镜",了解一切.预知未来.正是缘于这些奇思妙想,给现代科技的发展带来了一些不可思议的神奇变化.这不,微软最近就推出了一款名为"魔镜"(Magic Mirror)的智能镜子,真的能够察言观色,让童话里的神奇"魔镜"从幻想走到了现实世界! 这款神奇"魔镜"是集合了微软面部识别.情感识别.智能搜索等等人工智能技术为一体的现代科技产物.从表面上看,

哈利.波特读后感

前几天刚刚读完了罗琳老师的HP系列,稍有感触,所以写一篇读后感来直抒己见. 第一次听说HP系列是很久很久以前的事了,当时年纪不大,所以并没有关注这部经典的著作.为什么是经典之作呢,个人认为不仅仅是因为作者超脱现实的缤纷多彩的魔法世界,也不仅是因为故事剧情引人入胜,更多的是包含于故事字里行间的作者哲学思想.一本书的灵魂往往是它所想要展现在读者面前的意境,而罗琳老师毫无疑问在她这部作品中倾注的"'灵魂"是十分真挚而吸引人的. 本来刚刚接触是死亡圣器电影开播的时候,好奇的关注了一下,发现八本