zoukankan      html  css  js  c++  java
  • 算法:01贪心算法

    2.1、基本概念

    2.1.1、贪心本质

    • 1、只根据当前已有的信息做出选择,一旦选择,就不会改变。

    2.1.2、利用贪心算法求解问题的2个特性

    • 1、贪心选择性质
    • 2、最优子结构

    2.1.3、贪心算法秘籍

    • 1、贪心策略:选择当前看上去最好的一个方案。
    • 2、局部最优解:一步步地得到局部最优解
    • 3、全局最优解:把所有的局部最优解合成为原来问题的一个最优解

    2.2、最优装载问题

    2.2.1、题目

    2.2.2、分析&算法设计

    2.2.3、代码

    //program 2-1
    #include <iostream>
    #include <algorithm>
    const int N = 1000005;
    using namespace std;
    double w[N]; // 古董的重量数组
    int main()
    {
        double c;
        int n;
        cout<<"请输入载重量c及古董个数n: "<<endl;
        cin>>c>>n;
        cout<<"请输入每个古董的重量,用空格分开:"<<endl;
        for(int i=0;i<n;i++)
        {
            cin>>w[i]; // 输入每个物品重量
        }
        sort(w,w+n);//按古董重量升序排序
        double tmp=0.0; // tmp为已装载到船上的古董重量
        int ans = 0; // ans为已装载的古董个数
        for(int i=0;i<n;i++)
        {
            tmp+=w[i];
            if(tmp<=c)
                ans++;
            else
                break;
        }
        cout<<"能装入的古董最大数量为Ans=";
        cout<<ans<<endl;
        return 0;
    }
    
    // 30 8
    // 4 10 7 11 3 5 14 2
    // 输出Ans=5
    

    2.2.4、算法解析及优化拓展

    2.3、背包问题

    2.3.1、题目

    2.3.2、分析&算法设计

    2.3.3、代码

    2.3.4、算法解析及优化拓展

  • 相关阅读:
    783. Minimum Distance Between BST Nodes
    290. Word Pattern
    155. Min Stack
    HDU 6069 Counting Divisors (素数+筛法)
    BZOJ 2038 小Z的袜子(hose) (莫队算法)
    HDU 6127 Hard challenge (极角扫描)
    HDU 6096 String (AC自动机)
    LightOJ 1268 Unlucky Strings (KMP+矩阵快速幂)
    CodeForces 219D Choosing Capital for Treeland (树形DP)
    ZOJ 3201 Tree of Tree (树形DP)
  • 原文地址:https://www.cnblogs.com/fewolflion/p/14186969.html
Copyright © 2011-2022 走看看