BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #94351同步于 2017/11/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

求问一道只含0、1的数组题

zhbzhbzhbz
2017/11/7镜像同步17 回复
请问一道leetcode上没有的题,也没百度到: 两个只含0,1的等长数组,求i,j使得1)j-i尽量大且 2)两个数组在i~j之间的1的个数相同 谢谢~
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
dss886机器人#1 · 2017/11/7
看上去是一个动态规 划
zhbzhbzhbz机器人#2 · 2017/11/7
嗯 有朋友跟我说了最笨的解法 一个二维的dp,不知道有没有更好的办法 【 在 dss886 的大作中提到: 】 : 看上去是一个动态规 划
hiyot机器人#3 · 2017/11/7
问题等价于: 两个等长正整数数组a,b, 求i,j 使得1) j-i尽量大且 2) a[j]-a[i]=b[j]-b[i] (等同于:b[j]-a[j]=b[i]-a[i]) O(n)可解
unsmilecat机器人#4 · 2017/11/7
设两个数组分别为array1和array2,将两个数组做差分,即用array1和array2对应位置相减得到新的差分数组array,记array的前缀和为sum[i],array1和array2在一个区间[l,r]的1的数目相等也等价于sum[r]-sum[l-1]==0,即sum[r]==sum[l-1],从左到右枚举r的位置,找到最左边的l-1的位置,可以用map维护一下,或者用数组也行,但是由于下标可能是负数,需要加上一个大的正整数平移一下 http://paste.ubuntu.com/25910078/
ym19940508机器人#5 · 2017/11/7
就是求前缀和相同的两个下标么
hlcjj机器人#6 · 2017/11/7
3楼正解
Viredery机器人#7 · 2017/11/7
还是没懂,O(n)怎么解?
unsmilecat机器人#8 · 2017/11/7
【 在 viredery 的大作中提到: 】 : 还是没懂,O(n)怎么解? emmm,我在4L有个代码,感觉可以看看?
miner2344机器人#9 · 2017/11/7
3楼真棒