• 背包问题+欧拉筛法


    背包问题可以分为

    0-1背包(每件物品都只有一件)

    完全背包(每件物品都有无数件)

    多重背包(每件物品可以有多件)

    当然,我们的 背包 肯定是有 容量大小的(看题目规定或者自己输入)。

    首先推荐一下0-1背包问题的解析 https://blog.csdn.net/AC__GO/article/details/76918559

    然后再解决一下我自己当时有点迷糊的点

    0-1背包 的思路其实就是这样

    当前背包的容量能不能放的下当前物品

    如果能

    要放下当前物品要执行什么操作(要不要拿出来之前放的物品)

    执行完操作

    放入当前物品后的总价值    是否大于  不放入当前物品的总价值

    按照这个思路去看上面推荐的解析应该就能明白了。。。。。。。

    ——————————————————————————————————————————————————————————————————————————————————————————

    本来一直都是用打表,今天被一道题卡超时,没办法就学了下,发现没那么难。

    #include<iostream>
    using namespace std;
    #define inf 1000005
    int num[inf];//这个是所有数的数组,等于0就代表为素数,等于1就代表合数
    int book[inf];//这个是专门放素数的数组
    int main()
    {
        int n, t = 1;//n是范围,t=1是因为 素数的数组 要用
        cin >> n;//读入范围
        for (int i = 2; i <= n; i++) {//开始遍历
            if (num[i] == 0) { book[t++] = i; }//如果这个数是素数,那就放入素数的数组
            for (int j = 1; j < t && (book[j]*i<inf); j++) {
                num[i*book[j]] = 1;//当前数*素数=一个合数   把这个合数标记为1 代表是合数
                if (!(i % book[j])) { break; }//如果找到了自己的最小质因数,那就跳出
            }
        }
    }
    /*数学小知识:每一个合数 都至少整除 一个素数 
    比如 6能整除2   那么2就是6的最小质因数*/

    这几天有点水。。。。。。。。。

  • 相关阅读:
    2,进程----multiprocessing模块介绍
    1,进程----进程理论知识
    对ORM的理解
    对queryset的理解
    个人总结-10-代码测试整合
    个人总结-9-session的使用,十天免登陆
    个人总结-8-重新写注册和登录界面
    个人总结-7- 实现图片在MySQL数据库中的存储,取出以及显示在jsp页面上
    从人机交互看对搜狗输入法的使用感受
    个人总结6-验证码制作总结
  • 原文地址:https://www.cnblogs.com/caibingxu/p/9960828.html
Copyright © 2020-2023  润新知