• 停课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遍历的,不都是质数,所以也包含着几个质数的积的形式。

  • 相关阅读:
    mariadb数据库galera群集配置
    视频降噪处理
    测试
    WPF RichTextBox
    WPF ListBox
    WPF SelectedIndex
    项目-答题
    Show 或者 ShowDialog时出现的错误
    项目-数据库实体生成器
    Alfred 使用教程
  • 原文地址:https://www.cnblogs.com/Amphetamine/p/6991399.html
Copyright © 2020-2023  润新知