zoukankan      html  css  js  c++  java
  • We need know.

    整数类型最大值:

      short : 32766;

      int : 2147483646;

    lower_bound: 找出指向满足ai >= k 的 ai 的最小的指针;求最长单调递增序列;

    upper_bound: 找出指向满足ai > k 的 ai 的最小的指针;求最长单调不递减序列;

      upper_bound(a, a+n, k) - lower_bound(a, a+n, k) , 有序数组a中的k的个数;

    lower_bound用法: 

        int it1 = lower_bound(a, a+n, k) - ans;it1 表示 下标;

        int *it2 = lower_bound(a, a+n, k); *it2 表示 数组;

        it1 = it2 - ans;

    01背包问题:

        memset(dp, 0, sizeof(dp));

        for(int i = 0; i < n; i++){
          for(int j = v; j >= a[i].v; j--){
            dp[j] = max(dp[j], dp[j-a[i].v] + a[i].w);
          }
        }

    又见01背包问题(枚举价值求同等价值需要的最小体积):

        memset(dp, 0, sizeof(dp));

        dp[0] = 0;

        for(int i = 0; i < n; i++){

          for(int j = Sum_w; j >= a[i].w; j--){

            dp[j] = min(dp[j]. dp[j-a[i].w] + a[i].v);

          }

        }

        for(int i = 0; i <= Sum_w; i++){

          if(dp[i] <= v){

            ans = i;

          }

        }

    完全背包问题:

        //memset(dp, -INF, sizeof(dp));dp[0] = 0;//完全装下不留空间;//if(dp[v]) < 0)puts("-1");

        //memset(dp, 0, sizeof(dp));只求可装最大价值;

        for(int i = 0; i < n; i++){

          for(int j = a[i].v; j <= v; j++){

            dp[j] = max(dp[j], dp[j-a[i].v] + a[i].w);

          }

        }

  • 相关阅读:
    正则表达式 常见的简写形式
    Git 常用命令
    利用npm安装删除模块
    发送验证码设置settime(验证码倒计时)
    30分钟后过期(订单过期)
    JS 获取当前日期时间以及其他操作
    判断终端
    一个轻量、可拓展、针对手机网页的前端开发者调试面板vConsole
    数据结构与算法----树(中)
    数据结构与算法----树(上)
  • 原文地址:https://www.cnblogs.com/ACMessi/p/4905281.html
Copyright © 2011-2022 走看看