题意:

输入n和m,求n!转换成m进制之后末尾有多少个0;

思路:

转换一下题意就可以看成,将n表示成x * (m ^ y),求y的最大值。^表示次方而不是异或;

这就比较好想了,将m分解质因数,对于每个质因数,设n!含有a个,m含有b个,则ans = min(ans, a / b);

  • 自己比赛的时候写的

    C - Trailing Loves (or L'oeufs?) GNU C++11 Accepted 46 ms 0 KB
    #include "bits/stdc++.h"
    using namespace std;
    typedef long long LL;
    map<LL, LL> mp, num;
    vector<LL> vc;
    int main() {
    LL n, m;
    scanf("%lld%lld", &n, &m);
    for (LL i = ; i * i <= m; i++) {
    if (m % i == ) {
    vc.push_back(i);
    while (m % i == ) {
    m /= i;
    mp[i]++;
    }
    }
    }
    if (m != ) {
    vc.push_back(m);
    mp[m]++;
    }
    for (int i = ; i < vc.size(); i++) {
    LL j = ;
    while (j <= n / vc[i]) {
    j *= vc[i];
    num[vc[i]] += n / j;
    }
    }
    LL ans = 1LL << ;
    for (LL i = ; i < vc.size(); i++) {
    ans = min(ans, num[vc[i]] / mp[vc[i]]);
    }
    printf("%lld\n", ans);
    return ;
    }

    其实没必要把各个因子保存下来。标程还是优很多的

  • 看了标程之后改的
    C - Trailing Loves (or L'oeufs?) GNU C++11 Accepted 31 ms 0 KB
    #include "bits/stdc++.h"
    using namespace std;
    typedef long long LL;
    const LL INF = 1LL << ;
    int main() {
    LL n, m, ans = INF;
    scanf("%lld%lld", &n, &m);
    for (LL i = ; i <= m; i++) {
    if (i * i > m) {
    i = m;
    }
    if (m % i == ) {
    int cnt = ;
    while (m % i == ) {
    m /= i;
    cnt++;
    }
    LL tmp = , mul = ;
    /*
    for (LL mul = i; mul <= n; mul *= i)
    这种写法应该更符合正常思维,但是因为n最高可以达到1e18,比较接近LL上限,mul可能乘i之前还小于n,乘完就爆LL了;
    */
    while (mul <= n / i) {
    mul *= i;
    tmp += n / mul;
    }
    ans = min(ans, tmp / cnt);
    }
    }
    printf("%lld\n", ans);
    return ;
    }

最新文章

  1. MySql: show databases/tables use database desc table
  2. [密码学] C++ 实现 AES128 加密算法
  3. JavaScript学习笔记——BOM_window子对象_History、Location、Screnn对象
  4. JavaScript Engines
  5. 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(二)
  6. 树莓派make 360wifi2报错
  7. Scala 深入浅出实战经典 第76讲:模式匹配下的赋值语句
  8. 使用Swift操作NSDate类型基础
  9. Java异常分类
  10. php涉及数据库操作时响应很慢。
  11. hdu2544 最短路
  12. Unity3D之飞机游戏追踪导弹制作
  13. 关于Oracle数据库中SQL空值排序的问题
  14. 从页面底部向上弹出dialog,消失时逐渐向下(转)
  15. mysql对GIS空间数据的支持,包括创建空间索引
  16. Archlinux 安装小计
  17. 11.纯 CSS 创作一个荧光脉冲 loader 特效
  18. java 泛型详解-绝对是对泛型方法讲解
  19. js_加入收藏夹功能
  20. Spark SQL Hive Support Demo

热门文章

  1. FPGA的基本组成单元LUT,以及三种核的概念
  2. 多分类度量gini index
  3. i++ 和 ++i 的区别和实现
  4. Python编译遇到的一些错误及解决办法
  5. 论文:利用深度强化学习模型定位新物体(VISUAL SEMANTIC NAVIGATION USING SCENE PRIORS)
  6. 处理Ajax请求跨域问题
  7. shell时间函数
  8. VS2015提示资源视图加载失败
  9. [SDOI2019]移动金币(博弈论+阶梯Nim+按位DP)
  10. http跳转http