AHS of FCGRC 停课 Day 2

Day 2

开始发慌了……我想得回去干点事,效率好低啊。

A.

题意简述:

  有a个A,b个B,c个C,d个D,求没有数相邻的方案数。

  路径统计的简单版,a,b,c,d<=30。

考虑直接DP解决,我得改掉看到题思路僵化的习惯了。

B.

题意简述:

  有m个东西,要分给n个桶,允许有的桶没有,允许一个桶放多个,要求有k个桶所装的物品数为奇数。

显然m和k不同奇偶时无解。把k个物品独立出来,把其他物品两个分一组,插版法解决。

公式为 C(n,k)*C((m-k)/2+n-1,n-1) 。

C.

题意简述:

  定义⼀个集合的权值是这个集合内所有数字的和。

  求一个集合的权值第k⼩⼦集的⼤小。  size<=38

很可疑,明明看上去是指数级复杂度却过不去。

考虑拆分集合,转化为序列合并问题,这种题当然是二分答案了。

D.

题意简述:

  定义好集合为所有元素两两^起来小于它们的最小值。

  求最大的好集合。

考虑一个一个集合是好集合的另外一个充要条件:

  它的所有元素的最高位是一致的。

这样就可以简单做了。(ll害人.jpg)

E.

题意简述:

  略。

因为这道题有后效性,考虑倒过来dp 令dp[i]表示从i点到结束(一定喝这杯)的最小时间。

显然答案=f[0],f[n+1]=0 dp[i]=min(dp[j]+caldis(i,j)) (i<j<=n+1)

我们发现,每个咖啡都有其等待时间和作用时间,你肯定希望,它在刚好喝完的时候接到下一杯,因为这样前面才没有白等。

可以证明,如果一定要选择这杯咖啡,在靠近这杯咖啡的作用结束时间的咖啡站拿下一杯是更优的。

当然,咖啡凉了以后,自然是一定要尽快新买的。

因而我们就有了决策单调性,用此优化dp即可。

F.

题意简述:

  略。

考虑每次交换仅会使得逆序对减1,那么我们考虑强行算出逆序对,用二次函数的最值解决问题即可。

posted @ 2018-11-05 16:40  臼邦庶民  阅读(86)  评论(0编辑  收藏  举报