(三) 从要处理的对象确定循环
长度为 n 的数组,下标集合是:
\[ \{0,1,\dots,n-1\} \]
因此遍历使用 i < n。区间 [left, right) 长度为 right - left,可以为空;闭区间 [left, right] 的非空长度为 right - left + 1。
枚举两个不同元素时,0 <= i < j < n 已经同时处理了“不同下标”和“避免重复计数”。如果顺序有意义,例如两人担任不同职务,则 (i, j) 和 (j, i) 可能是不同方案,不能擅自合并。
注意: 题面使用
1到n的编号时,读入后可以统一减一;输出下标时再按要求加回去。转换规则应贯穿整个程序。
right 表示区间外的第一个位置。先在图上标出包含的下标,再确定循环条件。