Gold Balanced Lineup(hash)
http://poj.org/problem?id=3274
*****
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
const int N=;
const int MOD=;
int Maxdis,k;
int c[N][],sum[N][];
int vis[N][]; struct node
{
int row_i;
struct node *next;
}*hash[N];
bool cmp(int a1,int b1)
{
for (int i = ; i < k; i++)
{
if (c[a1][i]!=c[b1][i])
return false;
}
return true;
}
void Hash(int row_i)
{
int key = ,i = ;
while(i < k)
{
key = key*+c[row_i][i];
i++;
}
key=abs(key)%MOD;
if (!hash[key])
{
hash[key] = new node;
hash[key]->row_i = row_i;
hash[key]->next = NULL;
}
else
{
struct node *p = hash[key];
if(cmp(p->row_i,row_i))
{
if (Maxdis < row_i-(p->row_i))
Maxdis = row_i-(p->row_i);
return ;
}
while(p->next)
{
if (cmp(p->next->row_i,row_i))
{
if (Maxdis < row_i-(p->next->row_i))
Maxdis = row_i-(p->next->row_i);
return ;
}
p = p->next;
}
p->next = new node;
p->next->row_i = row_i;
p->next->next = NULL;
}
return ;
}
int main()
{
int n;
scanf("%d %d",&n,&k);
for (int i = ; i < k; i++)
{
c[][i] = ;
sum[][i] = ;
}
memset(hash,,sizeof(hash));
Hash();
Maxdis = ;
for (int i = ; i <= n; i++)
{
int num;
scanf("%d",&num);
for (int j = ; j < k; j++)
{
vis[i][j]=num%;
num/=;
sum[i][j] = sum[i-][j]+vis[i][j];
c[i][j] = sum[i][j]-sum[i][];
}
Hash(i);
}
printf("%d\n",Maxdis);
return ;
}
Gold Balanced Lineup(hash)的更多相关文章
- poj3274 Gold Balanced Lineup(HASH)
Description Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been abl ...
- POJ 3274 Gold Balanced Lineup
Gold Balanced Lineup Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10924 Accepted: 3244 ...
- 哈希-Gold Balanced Lineup 分类: POJ 哈希 2015-08-07 09:04 2人阅读 评论(0) 收藏
Gold Balanced Lineup Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13215 Accepted: 3873 ...
- 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 510 S ...
- POJ 3274:Gold Balanced Lineup 做了两个小时的哈希
Gold Balanced Lineup Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13540 Accepted: ...
- 洛谷 P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维)
P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维) 前言 题目链接 本题作为一道Stl练习题来说,还是非常不错的,解决的思维比较巧妙 算是一道不错的题 ...
- Gold Balanced Lineup - poj 3274 (hash)
这题,看到别人的解题报告做出来的,分析: 大概意思就是: 数组sum[i][j]表示从第1到第i头cow属性j的出现次数. 所以题目要求等价为: 求满足 sum[i][0]-sum[j][0]=sum ...
- bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列——map+hash+转换
Description N(1<=N<=100000)头牛,一共K(1<=K<=30)种特色, 每头牛有多种特色,用二进制01表示它的特色ID.比如特色ID为13(1101), ...
- bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列【hash】
我%&&--&()&%????? 双模hashWA,unsigned long longAC,而且必须判断hash出来的数不能为0???? 我可能学了假的hash 这个 ...
随机推荐
- Objective-C在ARC下结合GCD的单例模式和宏模版
单例模式在iOS开发过程中经常用到,苹果提供过objective c单例的比较官方的写法: static MyGizmoClass *sharedGizmoManager = nil; + (MyGi ...
- python笔记之发送邮件
发送邮件前提:开启邮箱授权码 一.开启授权码(以163邮箱为例) 1.登录163邮箱,点击设置--POP3/SMTP/IMAP,出现设置界面 2. 开启SMTP服务且可以查询SMTP的host地址 ...
- jboss-eap-6.2修改端口号
最近要改版一个项目,用来配合日常工作使用,需要在服务器上放多个jboss,那么就需要修改jboss的端口,如果服务器上配置了JBOSS_HOME,需要先删除,否则配置修改不会生效,会依然用老的jbos ...
- 扩增子图表解读4曼哈顿图:差异分类级别Taxonomy
曼哈顿图 Manhattan Plot 曼哈顿图本质上是一个散点图,用于显示大量非零大范围波动数值,最早应用于全基因组关联分析(GWAS)研究展示高度相关位点.它得名源于样式与曼哈顿天际线相似(如下图 ...
- cshtml中字符串中表示特殊字符@
用“@@”表示字符串中的特殊字符@
- 新建python的虚拟环境
1.mkvirutalenv --python=E:\Users\00\AppData\Local\Programs\Python\Python37-32\python.exe article_spi ...
- How To: Multipath Linux x86-64 Release 6.4
[root@node01 ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0 ...
- Eclipse中使用struts标签时出错
原因是Action和ActionForm对应文件中没有继承相应的类,具体来说: ActionForm的编写: 必须继承org.apache.struts.action.ActionForm Actio ...
- Python类中的 私有变量和私有方法
默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量.在python中定义私有变量只需要在变量 ...
- 第七节:numpy之矩阵及特殊矩阵的创建