[poj3274]排排站(Hash)

题目:http://poj.org/problem?id=3274

题目大意:http://www.wikioi.com/problem/1247/ (此题中文版)

分析:

令sum[i][j]表示a[1][j]+a[2][j]+……+a[i][j]

那么要求的就是找到最大的j-i使得sum[j][1]-sum[i][1]==sum[j][2]-sum[i][2]==……

变形一下可得sum[i][2]-sum[i][1]==sum[j][2]-sum[j][1] sum[i][3]-sum[i][1]==sum[j][3]-sum[j][1] ……

那么我们可以对每一行进行处理,令b[i][]={sum[i][2]-sum[i][1],sum[i][3]-sum[i][1],……}

那么我们要求的就是最大的j-i是的b[j][]==b[i][]

这里枚举超时,所以就Hash水过……

posted @ 2014-07-20 09:52  Chellyutaha  阅读(125)  评论(0编辑  收藏  举报