【cf260X】Codeforces Round #158 (Div. 2)

2015年6月9日1,4230

A. Adding Digits

模拟,每次可以根据当前模的结果,得出下一个添加的数字

B. Ancient Prophesy

在串中枚举一段,用map统计出现次数

C. Balls and Boxes

可以发现,拿来分的那个盒子现在的数量一定是最少的,于是模拟大法

D. Black and White Tree

将两色的结点排序后,依次贪心构造

构造方法很简单

E. Dividing Kingdom

把点分别按横/纵坐标排序,枚举全排列,直接根据9个值得出直线的位置

然后用线段树check一下

线段树要支持查询左上角一个矩形内的点的个数

按x坐标建立线段树,每个结点放个vector存储结点的y坐标,查询时在对应x坐标的区间内二分

复杂度\(9!*\log{n}^2\)