哈希 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的
下标注意一下
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<vector> using namespace std; #define MAXN 100010
#define mod 14997 int n,k;
int x[MAXN][];
vector<int>hash[]; int main()
{
scanf("%d%d",&n,&k);
int ans=; for(int i=;i<=n;i++)
{
int a,j,ii;
scanf("%d",&a);
j=;
while(a)
{
x[i][j++]=a%;
a=a/;
}
for(ii=;ii<=k;ii++)
x[i][ii]+=x[i-][ii];
for(ii=;ii<k;ii++)
if(x[i][ii]!=x[i][ii+])
break;
if(ii==k)
ans=i;
} for(int i=;i<=n;i++)
{
int sum=,ii;
for(int j=;j<=k;j++)
{
x[i][j]-=x[i][];
sum=sum+x[i][j];
}
x[i][]=;
sum=abs(sum)%mod;
for(int j=;j<hash[sum].size();j++)
{
for(ii=;ii<=k;ii++)
if(x[hash[sum][j]][ii]!=x[i][ii])
break;
if(ii==k+&&i-hash[sum][j]>ans)
ans=i-hash[sum][j];
}
hash[sum].push_back(i);
}
printf("%d\n",ans);
return ;
}
哈希 poj 3274的更多相关文章
- POJ 3274 Gold Balanced Lineup(哈希)
http://poj.org/problem?id=3274 题意 :农夫约翰的n(1 <= N <= 100000)头奶牛,有很多相同之处,约翰已经将每一头奶牛的不同之处,归纳成了K种特 ...
- poj 3274 Gold Balanced Lineup(哈希 )
题目:http://poj.org/problem?id=3274 #include <iostream> #include<cstdio> #include<cstri ...
- POJ 3274:Gold Balanced Lineup 做了两个小时的哈希
Gold Balanced Lineup Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13540 Accepted: ...
- POJ 3274 Gold Balanced Lineup 哈希,查重 难度:3
Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to narrow ...
- POJ 3274 HASH
题目链接:http://poj.org/problem?id=3274 题意+思路: 点击这里 补充:因为有减法运算,所以可能会造成运算后结果为负数,所以需要把结果统一转换成正数[不然数组下标访问不到 ...
- 哈希—— POJ 3349 Snowflake Snow Snowflakes
相应POJ题目:点击打开链接 Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions ...
- [字符哈希] POJ 3094 Quicksum
Quicksum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16488 Accepted: 11453 Descri ...
- 哈希 poj 3349
n个雪花 判断有没有相同的 正的和倒的相同都可以 哈希一下 比的少了就可以 #include<stdio.h> #include<algorithm> #include< ...
- POJ 3274 Gold Balanced Lineup
Gold Balanced Lineup Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10924 Accepted: 3244 ...
随机推荐
- HDU2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活[多重背包]
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- PHP从数据库导出EXCEL文件
参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...
- stl学习(一)优先队列
优先队列priority queue 头文件 #include<queue> 优先队列,也就是原来我们学过的堆,按照自己定义的优先级出队时.默认情况下底层是以Vector实现的heap. ...
- Android应用性能测试
Android应用性能测试 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了——应用耗电大 2)首次/非首次启动应用,进入应用特别慢——应用启动慢 3)应用使用过程中,越 ...
- JS中NULL和Undefined的区别
NULL是表示一个”无“的对象,转换成数值为0:undefined是一个“无”的原始值,转为数值为NaN: 当声明的变量还未被初始化时,变量的默认值为undefined: null用来表示尚未存在的对 ...
- redis采用tcmalloc导致无法释放内存的问题
from:http://wangneng-168.iteye.com/blog/2100379 redis使用tcmalloc管理内存,当删除了redis的key后,通过redis的info命令查看内 ...
- Python的高级特性10:无聊的@property
@property装饰器其实有点无聊,单独拿出来作为一个知识点其实没必要,尽管它可以将方法变成属性,让get和set方法更好用,但是,它破坏了python的简洁(不是代码的简洁而是指语法上). 下面来 ...
- PAT 1027. 打印沙漏(20)
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓"沙漏形状",是指每行 ...
- Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
概要 学完ArrayList和LinkedList之后,我们接着学习Vector.学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它.第1部分 Vec ...
- HTTP下密码的安全传输、OAuth认证
在复杂的web环境下,我们没有百分的把握保证信息在传输的过程中不被接货,那不是用明文如何告诉服务器自己的身份呢? 在一些高度通信安全的网络中,数据传输会使用HTTPS作为传输协议,但是通常情况下我们没 ...