zoukankan      html  css  js  c++  java
  • 哈希 poj 3274

    n个牛 二进制最多k位

    给你n个数

    求max(j-i)&&对应二进制位的和相同

    7    1  1  1  倒的   

    6    0  1  1

    7    1  1  1   

    2    0  1  0

    1    1  0  0

    4    0  0  1

    2    0  1  0

      

    3 4 5 6  加起来一样

    前缀和 - 第一列

    然后就发现对应相等就是和相同

    根据 和  hash

    和   有小于0的

    下标注意一下

     1 #include<stdio.h>
     2 #include<algorithm>
     3 #include<string.h>
     4 #include<math.h>
     5 #include<vector>
     6 
     7 using namespace std;
     8 
     9 #define MAXN 100010
    10 #define mod  14997
    11 
    12 int n,k;
    13 int x[MAXN][32];
    14 vector<int>hash[15010];
    15 
    16 int main()
    17 {
    18     scanf("%d%d",&n,&k);
    19     int ans=0;
    20 
    21     for(int i=1;i<=n;i++)
    22     {
    23         int a,j,ii;
    24         scanf("%d",&a);
    25         j=1;
    26         while(a)
    27         {
    28             x[i][j++]=a%2;
    29             a=a/2;
    30         }
    31         for(ii=1;ii<=k;ii++)
    32             x[i][ii]+=x[i-1][ii];
    33         for(ii=1;ii<k;ii++)
    34             if(x[i][ii]!=x[i][ii+1])
    35                 break;
    36         if(ii==k)
    37            ans=i;
    38     }
    39 
    40     for(int i=1;i<=n;i++)
    41     {
    42         int sum=0,ii;
    43         for(int j=2;j<=k;j++)
    44         {
    45             x[i][j]-=x[i][1];
    46             sum=sum+x[i][j];
    47         }
    48         x[i][1]=0;
    49         sum=abs(sum)%mod;
    50         for(int j=0;j<hash[sum].size();j++)
    51         {
    52             for(ii=1;ii<=k;ii++)
    53                 if(x[hash[sum][j]][ii]!=x[i][ii])
    54                     break;
    55             if(ii==k+1&&i-hash[sum][j]>ans)
    56                 ans=i-hash[sum][j];
    57         }
    58         hash[sum].push_back(i);
    59     }
    60     printf("%d
    ",ans);
    61     return 0;
    62 }
  • 相关阅读:
    weblogic部署应用程序(转)
    Eclipse配置weblogic 10(转)
    设计模式之四:抽象工厂(披萨店生产披萨模拟流程)
    设计模式之七:适配器模式(火鸡转换成鸭子)
    ES6Array的扩展方法
    JavaScript闭包
    JavaScript函数进阶
    古龙语录
    JavaScript递归
    ES6let和const
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/6098407.html
Copyright © 2011-2022 走看看