牛客网阶乘怪物C语言,牛客小白月赛23【题解】【非官方】

A、膜法匹配

状压枚举行,复杂度

equation?tex=O(nm*2%5En)过了,过的有点莫名其妙。还跑得贼快 15ms

B、阶乘

枚举质因子 p,求出那个质因子的个数之后。通过二分来check 个数是否足够就可以了。

考虑check的时候,(实际上就是某场div2的C),二分质因子 p 的倍数,假设我们现在选择 p*mid,我们不考虑每个数字含有的 p 的个数,我们考虑选择含有

equation?tex=p%2Cp%5E2%2Cp%5E3 因子的个数,显然这样很好求,就是

equation?tex=%5Clfloor%20%5Cfrac%7Bp*mid%7D%7Bp%7D%20%5Crfloor%2C%5Clfloor%20%5Cfrac%7Bp*mid%7D%7Bp%5E2%7D%20%5Crfloor%2C%5Clfloor%20%5Cfrac%7Bp*mid%7D%7Bp%5E3%7D%20%5Crfloor,由于因子最多只有30+个,所以在check 的同时加一个特判就可以了。

C、完全图

完全图就是任意两个点都有边,所以 n-1 条边 多一个连通分量,然后 n-2 条边 多一个连通分量……

但是不太明白为啥出题人出这么大的范围,然后花了很长时间

(打开了IDEA)上了一发 BigInteger

E、A+B问题

感觉这种题没啥意义,PHP一时爽

F、美丽的序列1

类似今年Camp day1 A(https://ac.nowcoder.com/acm/contest/3979/A),两个题相同在都是从n个范围内选出n个数字,然后算相邻对答案差生的贡献,都用到了期望的可加性

Camp的题是求逆序对的期望,所以只需要考虑相邻的逆序即可

小白赛F是求这个序列最少分成多少个连续不下降子段,所以在考虑相邻变成下降的同时,要乘上除了相邻两个线段的剩下线段的长度积,并且由于无论如何都有一个贡献,在最后加上所有数字任选的情况

然后考虑相邻两段,最多有6种情况,实际上就是一个或者多个等差数列,纸上推一下公式就可以了

G、树上求和

就是求每条边被用了多少次,实际上就是这条边的两端节点个数的乘积,所以在dfs求出sz之后,每条边的使用次数就是 sz*(n-sz),排个序即可。

H、奇怪的问题增加了

签到,从后往前遍历一下就可以了

I、寻找子串

枚举后缀,签到

J、最大的差

签到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值