1247 排排站 USACO(查分+hash)
/* 暴力查分 n*n */ #include<cstdio> #include<cstring> #include<iostream> #define maxn 100010 using namespace std; int n,m,a[maxn],ans,p[maxn][31],r[31]; int main() {scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if((1<<j-1)&a[i])p[i][j]=p[i-1][j]+1;else p[i][j]=p[i-1][j];for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++){int falg=0;for(int k=1;k<=m;k++)r[k]=p[j][k]-p[i-1][k];for(int k=2;k<=m;k++)if(r[k]!=r[k-1]){falg=1;break;}if(!falg)ans=max(ans,j-i+1);}printf("%d\n",ans);return 0; }
/* 还是差分 因为对于符合条件的序列 有 sj0 - si0 = sj1 - si1 =...= sjk-1 - sik-1 也就是说 如果存在i j 满足sj1 - sj0 == si1 - si0 sj2 - sj0 == si2 - si0 ......sjk-1 - sj0 == sik-1 - si0 我们定义c[i,j]=s[i,j]-s[i,0] 问题就转化成了 找隔得最远的ij 满足c[i] 和 c[j] 一样 这里用hash加速查找 给每个c[i] 搞一个hash值 放到hash表里 */ #include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> #define maxn 100010 #define mod 999997 using namespace std; int n,m,a[maxn],ans,p[maxn][35],c[maxn][35],has[maxn*10]; int Get_hash(int *a) {int r=0;for(int i=0;i<m;i++)r=r%mod+a[i]<<2;if(r<0)r=-r;return r%mod; } int main() {scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)for(int j=0;j<m;j++)if((1<<j)&a[i])p[i][j]=p[i-1][j]+1;else p[i][j]=p[i-1][j];for(int i=1;i<=n;i++)for(int j=0;j<m;j++)c[i][j]=p[i][j]-p[i][0];memset(has,-1,sizeof(has));has[0]=0;for(int i=1;i<=n;i++){int k=Get_hash(c[i]);while(has[k]!=-1){int falg=0;for(int j=0;j<m;j++)if(c[has[k]][j]!=c[i][j]){falg=1;break;}if(!falg&&i-has[k]>ans){ans=i-has[k];break;}k++;}if(has[k]==-1)has[k]=i;}printf("%d\n",ans);return 0; }
转载于:https://www.cnblogs.com/yanlifneg/p/5813796.html
1247 排排站 USACO(查分+hash)相关推荐
- 2021吉林高考26日几点可以查询成绩,2021吉林高考成绩查分时间及入口
2021吉林高考成绩查分时间及入口 2021吉林高考成绩查分时间及入口,有一些高考生真的很积极,考完试当天就将答案给对好了,考试嘛,站在旁观者的角度来看总是有人欢喜有人忧.估出来分数不咋地的,整个六月 ...
- 研究生查分方式-查分时间大汇总-文都管联院
最近,出成绩的消息真是铺天盖地,各个平台都是成绩查询和复试.调剂的相关信息. 小编这段时间也在不断的搜集整理考研出分时间,绝大多数院校和省份都在21号.22号出分,所不同的就是时间的早晚罢了. 01 ...
- 智学网服务器文件,智学网查分登录不上怎么回事?智学网登录不上的原因与解决办法[图]...
类型: 大小: 评分: 平台: 标签: 智学网是一款供用户登录进入才能使用的手机学习辅助工具,注意帮助家长及时了解孩子在校的学习成绩哦.可是有些家长在登录的时候,却碰到了问题不知怎么回事,也不知如何是 ...
- 计算机专业普通话考试成绩查询时间,2021普通话考完多久能查分 几天出成绩
2021普通话考完多久能查分 几天出成绩2021-06-12 15:32:54文/丁雪竹 有很多考普通话的同学是非常想知道,普通话考完多久能查分,几天出成绩呢,小编整理了相关信息,希望会对大家有所帮助 ...
- 2021梧州一中高考成绩查询,2021年广西高考成绩查询网站查分网址:https://www.gxeea.cn/...
[摘要]高考结束后大家最为关心的问题就是在哪里查分,如何查分,高考频道特别整理2021年广西高考成绩查询查分网址,成绩公布时考生可直接点击网址进行查分,预祝大家都能顺利的考上理想的大学! 由于,各省级 ...
- 喀什市2021年高考成绩查询,2021年新疆高考查分网站查分网址:http://www.xjzk.gov.cn/...
[摘要]高考结束后大家最为关心的问题就是在哪里查分,如何查分,高考频道特别整理2021年新疆高考成绩查询查分网址,成绩公布时考生可直接点击网址进行查分,预祝大家都能顺利的考上理想的大学! 由于,各省级 ...
- POJ2983 查分约束系统
题意: 给你n个点,然后给你两种情况,P a b c,表明a在b的北边c那么远,V a b 表明a在b的北边(距离最少是1),问你这些条件是否冲突. 思路: 一开始想用带权并 ...
- 英语四级计算机准考证查询,四级成绩查询_四级查分:什么?准考证不见了?!!!_沪江英语...
找回准考证号功能使用说明: 为方便广大考生查询分数,99宿舍提供准考证号找回服务.若你忘记准考证号可通过客服系统提交姓名.学校等信息,99宿舍将为你提供相匹配的准考证号.准考证找回功能仅供参考,准确准 ...
- 2021略阳天津高级中学高考成绩查询,2021年天津高考成绩查询网站查分网址:http://www.zhaokao.net/...
[摘要]高考结束后大家最为关心的问题就是在哪里查分,如何查分,高考频道特别整理2021年天津高考成绩查询查分网址,成绩公布时考生可直接点击网址进行查分,预祝大家都能顺利的考上理想的大学! 由于,各省级 ...
最新文章
- 无向完全图k6有几条边_漫画:什么是 “图”?
- python【力扣LeetCode算法题库】1013-将数组分成和相等的三个部分(贪心)
- QT-X11-3.1.2.tar.bz2的使用
- ElasticSearch查询 第四篇:匹配查询(Match)
- [待总结]redmine
- oracle怎么设置出蓝色边,Oracle 数据库入门之———————-,多行函数-蓝色留心...
- 一个通用的Makefile
- java class和this_转:java 类名 this 的使用
- 《Act with Prudence》读后感
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a
- 2022-2028年中国长租公寓行业市场运行格局及发展策略分析报告
- 朱晔的互联网架构实践心得S1E8:三十种架构设计模式(下)
- 数据预处理 ToTensor和Normalize
- 二维数组和二维数组名
- 国二c语言程序,国家计算机二级c语言题库及答案
- 详解C语言自定义类型(结构体,位段,枚举,联合)
- mysql 超时问题的解决办法
- 【论文解读|AAAI2021】HGSL - Heterogeneous Graph Structure Learning for Graph Neural Networks 图神经网络的异构图结构学习
- 没有网络的计算机怎么装驱动程序,装机后电脑没有网络的情况下,驱动人生6教你首先将网卡驱动安装好...
- TextRank提取句子的关键词
热门文章
- code dairy
- pad_sequences序列预处理
- Matlab--Monte Carlo simulation
- Skywalking-11:Skywalking查询协议——案例分析
- 设计模式学习笔记——桥接(Bridge)模式
- A. Gamer Hemose
- python文件是怎么打开_python file怎么打开
- python运行时间只算快的吗_10种检测Python程序运行时间、CPU和内存占用的方法
- 打不开/dev/vmmon:断裂管道_湖北加工管道式自卸除铁器厂家询价咨询_国凯环保设备...
- vscode终端乱码