zoukankan      html  css  js  c++  java
  • HDU 5890 Eighty seven(DP+bitset优化)

    这个题的背包的思想还是很容易想到的,但是这个bitset优化还是有点神奇的呀。。

    #include<bitset>
    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<map>
    #include<algorithm>
    using namespace std;
    bitset<90>A[11];
    const int maxn=1e3;
    int n,a[maxn];
    int dp[52][52][52];
    int vaild(int x,int y,int z)
    {
        for(int i=0;i<=10;i++) A[i].reset();
        A[0][0]=1;
        for(int i=1;i<=n;i++)
        {
            if(i!=x&&i!=y&&i!=z&&a[i]<=87)
            {
                for(int j=10;j>=1;j--)
                {
                    A[j]|=(A[j-1]<<a[i]);
                }
    
            }
        }if(A[10][87]) return 1;
        return 0;
    }
    /*
    int vaild(int i,int j,int k) {
        for (int h=0;h<=10;h++) A[h].reset();A[0][0]=1;
        for (int h=1;h<=n;h++)
        if (h!=i&&h!=j&&h!=k&&a[h]<=87) {
            for (int ii=9;ii>=0;ii--) A[ii+1]|=A[ii]<<a[h];
            if (A[10][87]) return 1;
        }
        return 0;
    }*/
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--)
        {
            memset(dp,0,sizeof(dp));
            scanf("%d",&n);
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&a[i]);
            }
            for(int i=1;i<=n;i++)
            {
                for(int j=i;j<=n;j++)
                {
                    for(int k=j;k<=n;k++)
                    {
                        dp[i][j][k]=vaild(i,j,k);
                    }
                }
            }
            int q;
            scanf("%d",&q);
            while(q--)
            {
                int b[4];
                scanf("%d%d%d",&b[1],&b[2],&b[3]);
                sort(b+1,b+4);
                if(dp[b[1]][b[2]][b[3]]) printf("Yes
    ");
                else printf("No
    ");
            }
        }
    }
    

      

  • 相关阅读:
    Java的Set集合中的retainAll()方法
    蒲丰投针问题
    根据贝叶斯公式求解三门问题
    概率论公式(续)
    数字(number)
    寻找最美的你(select)
    木棍
    lowbit
    搜索题
    day7
  • 原文地址:https://www.cnblogs.com/Heilce/p/7336898.html
Copyright © 2011-2022 走看看