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 这个 ...
随机推荐
- mounted钩子问题
recommend.vue <script type="text/ecmascript-6"> import Slider from 'base/slider/slid ...
- 12--C++_运算符重载
C++_运算符重载 什么是运算符的重载? 运算符与类结合,产生新的含义. 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义) 怎么实现运算符的重载? 方式:类的成员函数 ...
- img图片加载出错处理
img图片加载出错处理 为了美观当网页图片不存在时不显示叉叉图片 当在页面显示的时候,万一图片被移动了位置或者丢失的话,将会在页面显示一个带X的图片,很是影响用户的体验.即使使用alt属性给出了” ...
- C#---EF映射MySQL
使用EF CodeFirst连接MySql数据库 如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5 ...
- animation与transition区别
transition: 过渡属性 过渡所需要时间 过渡动画函数 过渡延迟时间:默认值分别为:all 0 ease 0 1.局限性: 1)只能设置一个属性 2)需要伪类/事件触发才执行 3)只能设置动画 ...
- btrfs基础
btrfs文件系统简介 btrfs文件系统:技术预览版(Centos7) Btrfs(B-tree.Butter FS.Better FS),GPL授权,Orale2007提出是想用来取代Ext文 ...
- Opencv学习之路——自己编写的HOG算法
#include<opencv2\core\core.hpp> #include<opencv2\highgui\highgui.hpp> #include<opencv ...
- C# 派生类的XmlSerializer序列化XML
近段对XML 序列化进行处理,用XmlSerializer这个挺好用的. 但是对于派生类对象的XML的生成总会报错.因为同一个节点名称,不能反射为不同的对象.这个在网上找了好久,都说要利用反射来处理. ...
- mac上常用的命令
平时会经常遇到的问题做一个总结
- 【POJ 1981】Circle and Points(已知圆上两点求圆心坐标)
[题目链接]:http://poj.org/problem?id=1981 [题意] 给你n个点(n<=300); 然后给你一个半径R: 让你在平面上找一个半径为R的圆; 这里R=1 使得这个圆 ...