每个元素非零,连续子数组乘积的正负只取决于区间内负数的个数:奇数个则为负段,偶数个则为正段。
从左到右扫描,用 val 维护前缀乘积的符号(+1 或 −1),并用 po、ne 分别记录已经出现过的正前缀、负前缀个数。
枚举右端点 i:
给定长度为 n 的非零整数序列 a1,a2,…,an。一个连续子数组的符号由其所有元素的乘积决定:乘积小于 0 称为负段,乘积大于 0 称为正段。
请分别统计负段的个数与正段的个数。两个子数组不同,当且仅当它们的左右端点不完全相同。
约束条件:
第一行包含一个整数 n,表示序列长度。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.