小白109题解

A:

  • 小于等于

    所有数都可以满足条件,所以输出

  • 大于个数满足条件,所以输出

复杂度为

代码

B:

​ 观察发现对于一种划分方案,取最大的才能使得中位数、平均数最大,所以的限制实际上没有用处

​ 而最优划分情况一定是只留最后一个数给菲菲姐。

​ 所以只需要判断一下最后一个数是不是所有数的最大值即可

复杂度为

代码

C:

模拟即可。

询问:用自带的_找到下一个在区间内且没有和玩耍过的猪猪。标记是第几个并将这个猪猪从中删除,重复这个操作直到区间内没有猪猪没有和玩耍过为止。

询问直接输出标记

复杂度为

代码

D:

先按左端点排序。然后考虑

表示选到第个猪猪且选他的最小花费。

数组的前缀和,用来求出不选编号为的猪猪所需要花费的金钱

首先考虑,枚举上一个选的

则转移式子是

考虑优化这个转移,发现只需要用的最小值转移。

复杂度为

代码

E:

先考虑的暴力。枚举左右端点,然后这个区间的贡献是:

  • 如果这个区间内作为因子出现次数为奇数次则贡献为

​ 区间内所有数去掉这个因子的积*

  • 如果为偶数则贡献为

​ 区间内所有数去掉这个因子的积

因子出现次数

枚举左端点.

如果为奇数,则贡献为

如果为偶数,则贡献为

从后往前枚举左端点,并且维护两个值,表示为奇数和偶数的和。除法用逆元处理一下

复杂度为

注意

代码

F:

先对于每个加油站跑最短路算出每个加油站到每个岛的最短路,即从每个加油站出发不加油到达每个岛的最少的耗油量

然后再类似于的方法,求出加油站两两之间经过了次传送门所需要油箱的最小值

表示用了次传送门从加油站到加油站所需要油箱的最小值

对于询问。枚举第一个加油站和最后一个加油站,则两个加油站之间用了次传送门所需要的油箱的最小值,到第一个加油站的耗油量,最后一个加油站到的耗油量,三者的最大值即为答案

最小值即为答案

复杂度为

代码

全部评论
``` dp[i][j][z] = min(dp[i][j][z], max(dp[i][v][z], dp[v][j][0]));                     dp[i][j][z] = min(dp[i][j][z], max(dp[i][v][0], dp[v][j][z]));                     if (z != 0) {                         dp[i][j][z] = min(dp[i][j][z], max(dp[i][v][z - 1], dist[v][j]));                         dp[i][j][z] = min(dp[i][j][z], max(dp[v][j][z - 1], dist[i][v]));                     } ``` 这段代码里,为啥更新k次传送门的数据,只用考虑[0,z]和[1,z-1]的组合?而不是所有和为z的次数组合?
2 回复 分享
发布于 01-18 22:54 河北
d题为什么要把精力b和金钱val的输入反过来呢
点赞 回复 分享
发布于 01-31 11:40 海南
 E题的ksm(sum[i], mod - 2)是干嘛的?
点赞 回复 分享
发布于 01-19 13:18 江西
请问E题为啥这样就能一层循环就能解决
点赞 回复 分享
发布于 01-18 10:54 江西
原来F居然这么简单
点赞 回复 分享
发布于 01-17 23:38 河北
E 应该是有线性做法的吧,不需要每次都求逆元。
点赞 回复 分享
发布于 01-17 21:50 浙江
D题如何保证i和j能同时选呢?就是选j和选i在时间上不冲突?
点赞 回复 分享
发布于 01-17 21:35 湖北
为什么c没有代码
点赞 回复 分享
发布于 01-17 21:14 河南

相关推荐

不愿透露姓名的神秘牛友
今天 10:39
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务