题目链接

很难想。会哈希,但是想不出。需要一个转化,本来是求某一段上的二进制上每一位的1数目相等,转化为找两段相等的,换元可推出公式。最后注意特判。。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <string>
 5 using namespace std;
 6 #define MOD 97777
 7 struct node
 8 {
 9     int data;
10     struct node *next;
11 }*head[MOD],hash[60000];
12 int sum[100001][31];
13 int c[100001][31];
14 int n,m;
15 int judge(int x,int y)
16 {
17     int i;
18     for(i = 0; i < m; i ++)
19     {
20         if(c[x][i] !=  c[y][i])
21             return 0;
22     }
23     return 1;
24 }
25 int main()
26 {
27     int i,j,a,key,ans = 0,num = 0;
28     node *q,*t;
29     scanf("%d %d",&n,&m);
30     for(i = 1; i <= n; i ++)
31     {
32         scanf("%d",&a);
33         for(j = 0; j < m; j ++)
34         {
35             if(a&(1<<j))
36                 sum[i][j] = sum[i-1][j] + 1;
37             else
38                 sum[i][j] = sum[i-1][j];
39         }
40     }
41     for(i = 1; i <= n; i ++)
42     {
43         key = 0;
44         for(j = 1; j < m; j ++)
45         {
46             c[i][j] = sum[i][j]-sum[i][0];
47             key += c[i][j]*j;
48         }
49         for(j = 1;j < m;j ++)
50         {
51             if(c[i][j] != 0)
52             break;
53         }
54         if(j == m&&ans < i) ans = i;//特判是否全是0
55         key = key%MOD;
56         if(key < 0)
57             key = key + MOD;
58         for(t = head[key]; t != NULL; t = t->next)
59         {
60             if(ans < (i - t->data)&&judge(i,t->data))
61             {
62                 ans = i - t->data;
63             }
64         }
65         if(t == NULL)
66         {
67             q = &hash[num++];
68             q -> data = i;
69             q -> next = head[key];
70             head[key] = q;
71         }
72     }
73     printf("%d\n",ans);
74     return 0;
75 }

转载于:https://www.cnblogs.com/naix-x/archive/2013/01/14/2860223.html

POJ 3274 Gold Balanced Lineup(哈希)相关推荐

  1. POJ3274Gold Balanced Lineup(哈希)

    Gold Balanced Lineup Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10360   Accepted: ...

  2. 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 510   ...

  3. POJ3274 Gold Balanced Lineup【Hash函数】

    Gold Balanced Lineup Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16870   Accepted:  ...

  4. bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 821   ...

  5. 【POJ 3274】Gold Balanced Lineup (stl map )设计hash表,处理碰撞

    题目链接 题目链接 http://poj.org/problem?id=3274 题意 输入每头牛的特征的10进制,若i~j头牛中每个数位的特征相等则满足要求,求所有满足要求的j-i的最大值. 解题思 ...

  6. Gold Balanced Lineup - poj 3274 (hash)

    这题,看到别人的解题报告做出来的,分析: 大概意思就是: 数组sum[i][j]表示从第1到第i头cow属性j的出现次数. 所以题目要求等价为: 求满足 sum[i][0]-sum[j][0]=sum ...

  7. BZOJ1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    n<=100000个数表示每头牛在K<=30种物品的选取情况,该数在二进制下某位为0表示不选1表示选,求一个最大的区间使区间内选择每种物品的牛一样多. 数学转化,把不同状态间单变量的关系通 ...

  8. POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 53703   Accepted: 25237 ...

  9. POJ 3264 Balanced Lineup

    POJ 3264 Balanced Lineup 题目链接 Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,00 ...

最新文章

  1. 大数据分布式集群搭建(1)
  2. Delphi自动提交网页表单和获取框架网页源码
  3. MySQL8的inodb参数设置_MySQL8.0自适应参数innodb_dedicated_server
  4. JQuery $作用
  5. 线程间通信————同步
  6. java可视化多人群聊,java 网络编程-TCP-多人群聊(自问自答)
  7. 在eclipse中引入jquery.js文件报错的解决方案
  8. FreeSwitch给会议室人员增加标识
  9. 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第二节课笔记
  10. ping 127.0.0.1和ping本地ip、ping网关、ping远程网站分别测试什么
  11. 商丘学院计算机考研,商丘学院院校简介_商丘学院研究生院 - 中国考研网
  12. 第五十一篇 前端之CSS内容
  13. 数据挖掘1——课后习题
  14. myeclipse下载git中的代码步骤
  15. 《2021中国制造行业人才白皮书》出炉(附下载)
  16. asp.net基础:网页中插入Skype链接标签
  17. 【C4D】OC渲染器常见问题以及解决方案
  18. Biological Psychiatry:vmPFC在情绪、决策、社会认知和精神疾病中扮演多重角色
  19. 读《史蒂芬·乔布斯传》有感
  20. 如何在Word中排出漂亮的代码

热门文章

  1. 网络技巧:WiFi越用越慢,到底是什么原因,看完你就明白了!
  2. Java技术:Optional 相关用法介绍笔记
  3. 后端技术:数据持久化框架为什么放弃 Hibernate、JPA、Mybatis,最终选择 JDBCTemplate!...
  4. 高并发场景下的缓存有哪些常见的问题?
  5. java异步多线程 判断线程状态_java多线程和异步回调
  6. afudos备份bios不动_bios刷坏后的两种解决方法
  7. hook xposed 自定义类_【开始学习React Hook(1)】Hook之useState
  8. python系统学习1-程序设计的基本方法
  9. js 用迭代器模式优雅的处理递归问题
  10. HTTP Server Error 500 内部服务器错误