for ( int i = 1; i <= m1; ++ i ) ++ c1[ a[ i ].val ];
for ( int i = 1; i <= m2; ++ i ) ++ c2[ b[ i ].val ];
for ( int i = 1; i <= n; ++ i ) c1[ i ] = c1[ i - 1 ] + c1[ i ];
for ( int i = 1; i <= n; ++ i ) c2[ i ] = c2[ i - 1 ] + c2[ i ];
val 代表第 i 个飞机至少需要几个廊桥。
将前缀和改成下面这样后
for ( int i = 1; i <= m1; ++ i ) c1[ i ] = c1[ i - 1 ] + c1[ i ];
for ( int i = 1; i <= m2; ++ i ) c2[ i ] = c2[ i - 1 ] + c2[ i ];
仍可通过洛谷所有数据。