51nod 40分算法题

1737:见前2篇随笔。

1677:题意:给定一个n节点树,一个整数k,n个节点任意选k个出来,对于每一种选择方案,ans累加上使这k个点联通的最小边数,输出ans%1e9+7。

一句话题解:考虑每一条边被选中的次数为C(n,k)-C(a,k)-C(b,k),其中a,b为这条边两头的节点个数,预处理阶乘逆元即可。

1674:题意:给定n个数的序列,对于每个区间,定义区间价值为或和*与和,求所有区间的价值之和。

一句话题解:维护一个队列(这里只说或和怎么做,与和同理),逐步往队列里加元素,维护队列或和断点的地方,断点最多有32个,算上与和最多64个断点,最后分别计算每一段就好了,时间复杂度O(32*N);

1491:题意:给定一个01字符串,定义运算为$ \sum\nolimits_{i = 0}^{\rm{n}} {{a_i} * {q^{n - i}}} $,其中p为$ \frac{{\sqrt 5  + 1}}{2} $,给定两个字符串,比较它们的运算后大小。

一句话题解:易证,一个高位等于后面第一位加上后面第二位,挨个进位(这有个坑,进完了之后有可能会有10101010...1011,这显然可以接着在进,所以还要倒着推上去一次),然后去掉前导零比较就好了。复杂度O(N);

1686:题意:定义区间价值为众数的个数,求第K大的区间价值。

一句话题解:离散化后开始二分答案,看当前答案是否排在K之后,具体判断就是枚举区间左端点找最近右端点然后统计。

ni=0ai

转载于:https://www.cnblogs.com/enigma-aw/p/6286270.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值