poj3274

2023-11-09 15:34
文章标签 poj3274

本文主要是介绍poj3274,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include<stdio.h>
#include <iostream>
#include <string.h>
using namespace std;const int MAX = 100010;const int Mod = 1001007;int Hash[Mod+100];int sum[MAX][40],cmp[MAX][40];
int n,k;
int has(int *s)//哈希值转化,题解看的,不明白
{int p=0;for(int i=0; i<k; i++){p = ((p<<2)+(s[i]>>4))^(s[i]<<10);}p%=Mod;if(p<0){p+=Mod;}return p;
}int main()
{int data;int Max = 0;scanf("%d %d",&n,&k);memset(Hash,-1,sizeof(Hash));Hash[has(cmp[0])]=0;for(int i=1; i<=n; i++){scanf("%d",&data);for(int j=0; j<k; j++){//sum[i][j]=data&1;sum[i][j]+=sum[i-1][j]+data%2;cmp[i][j]=sum[i][j]-sum[i][0];data=data>>1;}int ans = has(cmp[i]);while(Hash[ans]!=-1){int R;for(R=0; R<k; R++){if(cmp[i][R]!=cmp[Hash[ans]][R]){break;}}if(R==k){if(Max<i-Hash[ans]){Max=i-Hash[ans];break;}}ans++;}if(Hash[ans]==-1){Hash[ans]=i;}}printf("%d\n",Max);return  0;
}


这篇关于poj3274的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377003

相关文章

poj3274--Gold Balanced Lineup(hash)

Gold Balanced Lineup Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12334 Accepted: 3618 Description Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has