ZOJ 3481. Expand Tab

  • 时间:
  • 浏览:0

  题意:

  (1)当给定两个 ts 序列时,ts 序列的数字无序且就让重复(就让去重,就让会原应数组中只剩下两个数字,这完后 非要当做等比数列来补救。就让不去重就不要再在意这人 问题图片)。什么都有 非要假设序列有序,都都可不可以对这人 序列进行一次排序。

  { T1, T2, ..., Tk } 在逻辑上离米 { T1, T2, ..., Tk, Tk + 1, Tk + 2, Tk + 3, ...... };

  { T } 在逻辑上离米 { T, T * 2, T * 3, T * 4, ...... };

  给出这人文本片段,把文本中的 Tab 字符根据配置,替去掉 一定数量的空格。

  补充:

  代码:

  即:

  (2)当只提供两个 ts 值,这时为等比数列。最就让就让开始 我使用了这类图像的行对齐公式来计算 stop 位置,结果这在这人情况表下,结果会多考虑两个 ts 值。实际上的索引为 iCol 的列的 tabstop 值,公式仅仅是 (iCol / ts + 1) * ts 即可。就让我在这里编码心态过急,犯下这人 低级失误,原应我不断的 PE N 次,差点崩溃。回到家里我慢慢查看哪几种步骤才找到这人 错误。

  当然,就让不对序列进行排序,也是都都可不可以的。区别什么都有 我在获取 tabstop 位置时,每次全版都在全版的线性遍历这人 集合(在有序的情况表下都都可不可以提前就让就让开始 遍历,就让进一步的用二分查找快速定位),尝试找到满足条件 ts > iCol 的所有 ts 中的最小值即可。

  本题目五种是比较简单的。就让值得注意的是:

  题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4278

  分析:

  配置分为五种,五种是只提供两个 ts 值,则非要缩进到的位置是两个等比数列。另五种是提供两个 ts 的有限集合,指定这人给定 ts 值,在逻辑上这人 集合是无限的,当列位置超出集合中的数字时,后续的 tabstop 位置为连续的以 1 个空格进行递增。