来来来,讨论一下百度之星的题目

昨天的,一题滑动窗口,二题O(n^3)的DP。 三题是二维线段树? 大家说得对,三题用线段树套平衡树显然更简单、更科学。
四题显然应该是先二分k,关键是怎么检验?我的做法是枚举交点Pi,枚举圆Cj(Pi不在Cj上),然后找出Cj上的所有交点所能产生的弦的中点与Pi的连线的中点,对它们进行检验。如果是三个圆交成一个空心的“瘪三角形”区域的话,画画草图就能明白我这样做的理由,关键是圆多了的话不知有反例没。结果最后没调出来,搞了半天就把一二两题做了。后来一想也就算了,反正第四题这么做也没啥根据,估计是错的。

今天下午的,一题垃圾题,二题纯计算几何,三题二分加网络流?
四题是个科学题目,O(根号n)的算法:先预处理数组f[d][r][s],表示后一半有d位数,模k余r,数字都在给定集合内,数字和为s的情况有多少种。然后枚举前面一半,直接查表累加就可以了。代码不是一般难写,要处理很多特殊情况。我已经N久没写过这么麻烦的代码了。最后还是写垃圾了,效率居然比暴力还慢,不知道是不是哪儿写错了。 谢wywcgs提醒,算法错了。即使只处理一半的长度,k仍然巨大无比。 刚才在路上突然想到了(其实最初我也是这样想的,后来做着做着就忘了这个细节):正如网友Zero所说,这道题目可以分情况套用两种不同的算法。k较小时用上面的算法没错,当k的长度超过y的一半时可以直接暴力枚举k的倍数,复杂度仍为O(根号n)。

几乎都是科学题目。算法大概都知道,就是写代码的能力太差太差了啊。

我把题目搞丢了,麻烦哪位给一个比赛题目的链接,谢了。
Update: 感谢网友dahe_1984提供两次比赛题目的链接:
http://hi.baidu.com/one%5Fperson/blog/item/ef8d0d4ce0d952fcd62afc35.html
http://hi.baidu.com/one%5Fperson/blog/item/4d211e23db8ddd4b93580737.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值