文章图片
题目
题意: 给你 6 6 6个数字分别代表两个序列中的 0 , 1 , 2 0,1,2 0,1,2的数量,然后通过 c i = { a i ? b i , a i > b i 0 , a i = b i ? a i ? b i , a i < b i c_i=\begin{cases} a_i*b_i, & \text{$a_i>b_i$} \\0, & \text{$a_i=b_i$}\\-a_i*b_i, & \text{$a_ibi?ai?=bi?ai?
思路: 【codeforces B. Ternary Sequence】我们想要最大的话,那么 2 2 2要尽可能和 1 1 1匹配,因为和 0 , 2 0,2 0,2匹配的话,最后 c i = 0 c_i=0 ci?=0,然后我们可以算出此时的最大匹配就是 m a x ( n u m b 0 , n u m a 2 ) ? 2 max(numb_0, numa_2)*2 max(numb0?,numa2?)?2,但是如果 n u m b 2 numb_2 numb2?过大的话,会使这个最大匹配变小,所以要让 n u m b 2 numb_2 numb2?尽量和 n u m a 0 , n u m a 2 numa_0,numa_2 numa0?,numa2?匹配,如果还是有剩余,在和 n u m a 1 numa_1 numa1?匹配。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
推荐阅读