zoukankan      html  css  js  c++  java
  • 停课day1

    一早上只做了一个calculator 还是参照题解,好惭愧

    f[1]=0; flag[1]=true;
        for (int i=2,N=num[n];i<p;i++) {
            for (int j=1,w=1;num[j]*i<=N;j++)
                if (f[j]+i<p) {
                    while(num[w]!=num[j]*i)++w;
                    f[w]=min(f[w],f[j]+1);
                    flag[w]=true;
                }
        }

    说一下核心部分 f[i]表示的是第i个数,最少乘的次数,flag表示是否被选中

    对于一个f[j]+i<p也就是说f[j]+i+1<=p num[j]*i这个数可以被选到,由于之前sort了所以对于每次循环,从小到大搜就可以啦

    这个算法解决了我之前的疑问就是如果乘10次2不如乘5次4,i是从2到p-1遍历的,不都是质数,所以也包含着几个质数的积的形式。

  • 相关阅读:
    机器学习的数学基础
    Numpy + matplotlib + pandas 用法示例
    笔记:《ZeroMQ》
    Bash 常用快捷键
    Python网络爬虫
    Bash-Script 应用案例
    Bash-Script 语法详解
    ADB的使用
    ROS概述
    架构风格
  • 原文地址:https://www.cnblogs.com/Amphetamine/p/6991399.html
Copyright © 2011-2022 走看看