zoukankan      html  css  js  c++  java
  • CF1042B 【Vitamins】(去重,状压搜索)

    由题意,我们其实会发现

    对于每一种果汁,其对应的状态只有可能有7种

    VA
    VB
    VC
    VA+VB
    VA+VC
    VB+VC
    VA+VB+VC

       这道题就大大简化了

    我们把所有果汁都读进来

    每种状态取价格最小的(这才有可能最优)

    (在这里我状压了一下,用二进制表示其种类)

    之后爆搜即可

    如果当前已满足(三种维生素都有了,答案就取min)

    最后输出即可

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define rii register int i
    #define rij register int j
    using namespace std;
    int bj[1005],zt[150],n;
    long long ans=2147483647;
    void dfs(int wz,long long an,int ztz)
    {
        if(ztz==7)
        {
            ans=min(ans,an);
            return;
        }
        for(rii=wz+1;i<=7;i++)
        {
            if(zt[i]!=2147483647)
            {
                dfs(i,an+zt[i],ztz|i);
            }
        }
    }
    int main()
    {
        scanf("%d
    ",&n);
        for(rii=1;i<=149;i++)
        {
            zt[i]=2147483647;
        }
        for(rii=1;i<=n;i++)
        {
            bj[1]=0;
            bj[2]=0;
            bj[3]=0;
            int ltt;
            int ztz=0;
            scanf("%d ",&ltt);
            char l=getchar();
            while(l!=10)
            {
                if(l=='A'&&bj[1]==0)
                {
                    ztz|=1;
                    bj[1]=1;
                }
                if(l=='B'&&bj[2]==0)
                {
                    ztz|=2;
                    bj[2]=1;
                }
                if(l=='C'&&bj[3]==0)
                {
                    ztz|=4;
                    bj[3]=1;
                }
                l=getchar();
            }
            zt[ztz]=min(zt[ztz],ltt);
        }
        dfs(0,0,0);
        if(ans>=2147483647)
        {
            cout<<"-1";
        }
        else
        {
            cout<<ans;
        }
    }
  • 相关阅读:
    LINUX 修复relocation error: /lib/tls/libc.so.6
    cmd 命令相关
    JS 相关
    Mysql 时间函数
    drupal 7.1 doc
    消息系统之Apache ActiveMQ
    【MongoDB学习之一】初始MongoDB
    【Redis学习之二】Redis:redis.conf 配置详解
    【Redis学习之一】Redis
    NOSQL学习之一:Memcached, Redis, MongoDB区别
  • 原文地址:https://www.cnblogs.com/ztz11/p/9669955.html
Copyright © 2011-2022 走看看