# B

# 题目大意

给定一个字符串 SStt 是其子串,如果 t0t_0tlastt_{last} 都是字符 t 的话,它就会有一个值,字符t的个数2字符串长度2\frac{字符t的个数 - 2}{字符串长度 - 2}
请你求出最大的这个值

# 题解

  • 1len1001 \le len \le 100

# 题解

其实题目很容易,但是为什么写在这呢?
是因为,在写这题的时候,用了 vectorvector,在其大小为 00 的时候,我访问了 idx.size() - 1
此时会有一个神奇的事情发生,这个的结果并不是 1-1,而是一个超级大的数,为什么呢?
这是由于 .size().size() 的类型是无符号整数,当 1-1 后,直接溢出了,进而会造成 TLETLE

# C

# 题目大意

你有 nn 个茶包,第 ii 个茶包里有 AiA_i 包茶,口味为 ii
现在你和庄家做一个游戏,游戏难度在 [1,i=1nAi][1, \sum\limits_{i=1}^{n} A_i],假设为 bb

  • 你申明一个整数 xxbxi=1nAib \le x \le \sum\limits_{i=1}^{n} A_i
  • 庄家从桌子上选 xx 包茶给你
  • 你从 xx 包茶中选择 bb
  • 如果这 bb 包都是一个口味,那么你赢了

你现在有 QQ 个问题,第 jj 个问题是

  • 一个难度为 BjB_j 的游戏,你能获胜的最小整数 xx 是多少(必须赢)

# 题解

我要从你给我的一堆茶中,选 bb 包同样口味的

站在庄家的角度
\to 如果一开始,某个茶包中的茶数量 <b< b,庄家可以把这个茶包里的茶全部给我;然后可以找到第一个 b\ge b 的茶包( idxidx ),1idx11 \to idx - 1 都可以给我 \to 二分找 bb前缀和计算前 idx1idx - 1

接下来,是不是有 nbn - b 个茶包里面的茶 b\ge b,如果给我 (nb)(b1)(n-b) * (b-1) 包,那我就赢不了
也就是说,再多给我一包,我就赢了

xx = pre[idx - 1] + (n - b) * (b - 1) + 1

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

duoxichangan 微信支付

微信支付

duoxichangan 支付宝

支付宝