zoukankan      html  css  js  c++  java
  • poj 1170

    很高兴,这道题刚编译成功提交就AC了。

    简单的多重背包,标算估计是5、6维动规。其实可以通过6进制压成一维。判定是一个特价方式是否可行只需自己推一下就行了,很简单(对应位上的数目标不小于特价所需条件)。

    代码:

    #include<cstdio>

    using namespace std;

    int t[10],map[1000],l[10],c[120],p[120],dp[300000];

    void init(){

             t[0]=1;

             for(int i=1;i<10;i++)t[i]=t[i-1]*6;

             return;

    }

    bool from(int x,int y){

             if(x>y)return 0;

             for(int i=9;i>=0;i--){

                       if(x/t[i]>y/t[i])return 0;

                       x%=t[i],y%=t[i];

             }

             return 1;

    }

    int main(){

             init();

             int n,fin=0;

             scanf("%d",&n);

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

                       int code;

                       scanf("%d%d%d",&code,&l[i],&p[i]);

                       map[code]=i;

                       c[i]=t[i];

                       fin+=t[i]*l[i];

             }

             int s;

             scanf("%d",&s);

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

                       int x;

                       scanf("%d",&x);

                       int cur=0;

                       for(int j=0;j<x;j++){

                                int x,y;

                                scanf("%d%d",&x,&y);

                                cur+=t[map[x]]*y;

                       }

                       c[i+n]=cur;

                       scanf("%d",&p[i+n]);

             }

             s+=n,dp[0]=0;

             for(int i=1;i<=fin;i++){

                       dp[i]=2147483647;

                       for(int j=0;j<s;j++)

                                if(from(c[j],i) && dp[i-c[j]]+p[j]<dp[i])dp[i]=dp[i-c[j]]+p[j];

             }

             printf("%d\n",dp[fin]);

             return 0;

    }

  • 相关阅读:
    【JS教程08】数组及操作方法
    【JS教程07】事件属性及匿名函数
    【JS教程06】操作元素
    【JS教程05】获取元素的方法
    【JS教程04】条件语句
    多线程环境下非安全Dictionary引起的“已添加了具有相同键的项”问题
    GPT分区基础知识及如何在GPT分区上安装WIN7
    Jenkins TFS配置
    windows查看端口占用命令
    VS2015企业版序列号
  • 原文地址:https://www.cnblogs.com/shanquan2/p/3165933.html
Copyright © 2011-2022 走看看