CF2030 report
CF2030
A
题意简述
给你一个可任意排列的数组,求其每个前缀中的最大值减最小值的和的最大值。
算法分析
第一个放最大的,第二个放最小的,于是 \(ans=\left(\max\left\{a_i\right\}-\min\left\{a_i\right\}\right)\times\left(n-1\right)\)。
B
题意简述
给定一个数 \(n\),你需要求出一个长度为 \(n\) 的 \(01\) 串使得带 1
的子序列和只带 0
的子序列数量差最小。
算法分析
排列组合:当只包含一个 1
时,差为 \(1+\left(\matrix{n\\n-1}\right)-\left(\matrix{n\\n-1}\right)=1\),易证此时差最小。
C
题意简述
给定长度为 \(n\) 的 \(01\) 串,可以进行 |
与 &
的操作,操作后会保留表达式,A 想让 1
作为最后的数,B 相反。若两 bot 都用最佳策略问 A 是否必胜。
算法分析
众所周知,&
优先级大于 |
,所以我们只需用 |
将一个 1
锁住就行。易得,1
在串两端或成对出现时 A 必胜。