简单行程
没啥好说的,除了晚上做题比较的菜,而且,还遇到了一个冒充六中学生的168学生,…………,不说了。
学到了什么
直接上知识点:
- 改点值通常用树状数组,改区间值通常用线段树。
- 转换值的一个装逼办法:x^=y^=x^=y
- next_permutation([指针1],[指针2]);用于生成全排列
- random_shuffle([指针1],[指针2]);的巧妙用法(详情见附件)
附件
random_shuffle([指针1],[指针2]);用于随机打乱传入的数组(即传入的起始指针)。
那么,你可能会感到奇怪,这样的带随机性的函数在竞赛中有什么用呢?下面,就让我为您介绍这黑科技的三个用处。
第一个,也不算很神奇,就是生产随机测试数据,测试自己的程序。
第二个,可以将读入的序列数据随机化,这样有什么好处?比如,评测人想设计数据卡你的话,你就有机会把它给破解了。
第三个,你可以用这个进行随机化搜索。这又有什么好处?还是防卡。因为如果你按常规顺序搜索,那么评测人也知道,他可能就会针对这种数据去设计数据去卡你,但是,如果你按随即顺序搜索,他就卡不到你。
惊不惊喜?意不意外?