经典例子: [NOIP2017 小凯的疑惑](http://uoj.ac/problem/329)
-我自己的标准是:尽量不要出数学填空题。但这样的纯数学题也不是完全不可取,有时纯粹地考察一些 OI 常用数学知识也是可以接受的。
+OI 中的数学题与其它数学题的区别,也是体现 OI 本质的一个特点,是 OI 中的数学题往往重点不在答案 **是什么**,而在如何 **加快** 答案的计算。如果一道题考察的重点是“怎么算”而非“怎么快速计算”,这样的数学题一般都是不适合出在 OI 中的。
-> ä¸\80é\83¨å\88\86å\81\8fé¢\98ä¸ç\89µæ¶\89å\88°äº\86大å¦ç\89©ç\90\86ç\9a\84å\86\85容ï¼\8c导è\87´é\80\89æ\89\8bå\9c¨é\9d¢å¯¹è¿\99äº\9bä»\8eæ\9cªæ\8e¥è§¦è¿\87ç\9a\84ç\89©ç\90\86ç\9f¥è¯\86ç\82¹æ\97¶å\8f\98å¾\97ä¸\8dç\9f¥æ\89\80æ\8eªï¼\8cé\80 æ\88\90äº\86ç\9f¥è¯\86ä¸\8aç\9a\84é\9a\94è\86\9cã\80\82
->
+> 一部分偏题中牵涉到了大学物理的内容,导致选手在面对这些从未接触过物理知识点时变得不知所措,造成了知识上的隔膜。
+>的
> ——[王天懿《论偏题的危害》][2]
经典例子: [「清华集训 2015」多边形下海](http://uoj.ac/problem/159)
### 输入输出格式
-输入输出格式清晰 **完整** 即可,没有死板的要求,个人建议参照 CF 的题目来写输入输出格式,具体可以参考[CF 出题人须知][3]。
+输入输出格式清晰 **完整** 即可,没有死板的要求,个人建议参照 CF 的题目来写输入输出格式,具体可以参考 [CF 出题人须知][3]。
+
+为了方便选手做题,输入输出格式中最好说明每个变量的具体含义,除非变量的意义非常长,没法一句话说清楚(这时可以说“意义见题目描述”)。
需要特别注意的是,如果输出中含有小数,请尽量使用 SPJ。如果无法使用 SPJ,请保证对精度的要求是有限的。
-如果没有保证,对精度的要求可能是无限的。例如:要求保留三位小数,实际答案为 $0.0015$ ,此时只要有任意大小的误差导致计算出的答案小于 $0.0015$ ,即使计算出的答案是 $0.0014999999999\cdots$ 也会输出错误的答案。
+如果没有保证,对精度的要求可能是无限的。例如:要求保留三位小数,实际答案为 $0.0015$ ,此时只要有任意大小的误差导致计算出的答案小于 $0.0015$ ,即使计算出的答案是 $0.00149999\cdots$ 也会输出错误的答案。
保证对精度要求有限的例子:请输出答案四舍五入后保留小数点后三位的结果。令标准答案为 $ans$ ,数据保证对于任意满足 $\frac{|x-ans|}{\max(1,ans)}<10^{-9}$ 的 $x$ ,四舍五入后结果与 $ans$ 四舍五入后相同。
4. 实数没说小数点后位数。
5. 某些变量没有给范围。
-你需要保证标程可以通过满足题面所述数据范围的任何一组数据。
+你需要保证标程可以通过满足题面所述数据范围的 **任何一组数据**。
### 样例
}
```
+如果使用 `testlib.h`,可以使用 `shuffle` 函数,和 `random_shuffle` 类似,但使用 `rnd.next` 作为随机数生成器。
+
#### 生成随机区间
常见错误方法:在 $[1,n]$ 中随机生成左端点 $l$ ,再在 $[l, n]$ 中随机生成右端点 $r$ 。这样的话生成的区间会比较靠右。
for (i = 1; i <= n; ++i) p.push_back(i);
shuffle(p.begin(), p.end());
- // testlib.h 自带的用于替代 random_shuffle 的函数
// 使用 rnd.next() 进行 shuffle
printf("%d %d %d\n", n, m, k);