Good Bye 2018 ABCD题解

掉分场。。。大神太多。。。自己太菜。。。过了3题电脑没电了。。。挂机一个小时。。。rank3000+。。。掉了37分。。。

A:给你三个物品的数量,你必须选尽可能多的物品数量,使第一件物品的数量=第二件物品的数量-1=第三件物品的数量-2。

直接讨论一下哪样物品数量最少,或者暴力for枚举都行。

B:二维平面,给你n个点的坐标,再给你n个方向,保证存在一种方案,使每个点对应一个方向,且每个点的坐标值加上方向指向同一个点。

两种思路,第一种,直接累加所有的x和y值,然后分别除n。

第二种,对点和方向分别进行从小到大、从大到小排序,第一个坐标+第一个方向就是答案。

C:n个人围成一圈(依次编号1~n),从第一个人开始报数,报完后左边第k个人报数,问k从1到n的情况下报数的人的编号总和可能是多少。从小到大依次输出。

直接求出n的所有因子。然后这些因子就可以生成相应的报数集合,报数人的编号从1开始构成等差数列。算算小于等于n的是第几项,再用求和公式求一下和,扔set里面最后输出即可。

注意k=1和k=n的情况。

D:

给你一个数n,对于n生成的全排列依次接起来共n*(n-1)!个数,问你有多少个子区间和为n*(n+1)/2。输出答案mod998244353

两种方法,第一种,打表找规律,发现a[i]=i*(a[i-1]+(i-1)!-1),然后取个模。

第二种,通过观察排列,发现对于每个排列,当这个排列的后k个是递减序列时,后一个排列的n-k个数无法和这k个数构成1~n。

所以问题转化成了对k(k=1,2,...,n-1)求有多少个递减序列。。。因此答案就是

n*n!-\sum_{k=1}^{n-1}\left ( \frac{n!}{k!} \right )

推荐一篇不错的题解:https://www.cnblogs.com/si-rui-yang/p/10203170.html

EFGH留坑待补。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值