zoukankan      html  css  js  c++  java
  • hdu 4025 2011上海赛区网络赛E 压缩 ***

    直接T了,居然可以这么剪枝

    题解链接:点我

     1 #include<cstdio>
     2 #include<map>
     3 #include<cstring>
     4 #define ll __int64
     5 using namespace std;
     6 ll a[23],x[23][5],ans;
     7 map<ll,ll>p;
     8 void dfs(int d,int n,ll res,int f)
     9 {
    10     if(d==n){
    11         if(f)   p[res]++
    12         if(res==0)  ans++;
    13         return ;
    14     }
    15     for(int i=1;i<=x[d][0];i++)
    16     {
    17         ll temp=x[d][i]&a[d];
    18         dfs(d+1,n,temp^res);
    19     }
    20 }
    21 int main()
    22 {
    23     int t,i,j,n,m,k;
    24     ll temp=3,te;
    25     #ifndef ONLINE_JUDGE
    26     freopen("1.in","r",stdin);
    27     #endif
    28     scanf("%d",&t);
    29     while(t--){
    30         scanf("%d%d",&n,&m);
    31         memset(a,0,sizeof(a));
    32         memset(x,0,sizeof(x));
    33         p.clear();
    34         for(i=0;i<n;i++)
    35         for(j=0;j<m;j++){
    36             scanf("%I64d",&te);
    37             if(te)
    38                 a[j]|=(temp<<(2*i));
    39         }
    40         for(i=0;i<m;i++){
    41             scanf("%d",&x[i][0]);
    42             for(j=1;j<=x[i][0];j++){
    43                 scanf("%I64d",&te);
    44                 x[i][j]=te;
    45                 for(k=1;k<n;k++){
    46                     x[i][j]|=(te<<(2*k));
    47                 }
    48             }
    49         }
    50         dfs(0,m/2,0,1);
    51         dfs(m/2,m,0,0);
    52         printf("%I64d
    ",ans);
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    xml和web Server以及Remoting
    web窗体的基本控件
    迭代器
    .net 细节问题
    Linq笔记
    .net基础概念理解
    Gridview 和DetailsView FormView细节注意
    .net 基础学习(vs2008 3.5框架)
    一、多线程基础
    CentOS 7和SpringBoot下的Redis配置
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4693078.html
Copyright © 2011-2022 走看看