今天晚上闲来无事打了一场CF......div.2,第600名。太弱了。算法
T1看懂题以后发现是水题(废话),6min AC。数组
T2仔细思考以后发现可作,可是因为n=p的特判没肯定到底有没有解,WA了一次,觉得本身算法有问题,慌的一匹。spa
T3发现是个构造题,仔细思考发现能够很暴力的构造,写了一会,1:00AC。变量
看T4发现彷佛可作,可是比较麻烦,回头把T2换了种方法A了。这回n == p想清楚了。方法
而后开始肝T4,个人算法细节不少,没打完。移动
最后只A了三题,600名。di
T4:给你数轴上的1e5朵云,每朵云都长L,左端点为xi,有个初速度vi,只可能为±1,云不包含两端点。思考
月亮在坐标0位置,你能够制造风速绝对值不大于w的风,使得全部云的移速加上这个风速。vi
求有多少对云能够经过制造风速恰当的风而同一时刻遮盖月亮。
解①:能够发现每朵云有4种状况:在原点左右,初速度正负。而后要特判云在原点的状况。
云初速度相同必定不行,初速度相背也不行。只能相向而行。
由于速度能够小到0,因此只考虑速度上限便可。一个不等式解出来是C < v,而后v <= w,故C < w
而后把这个一次不等式的两个变量提取出来,能够获得一个约束条件( 其中之一是(b+L)(w-1)>a(w+1) ),用树状数组维护便可。
解②:
发现全部云是相对无风的(???),因而至关于移动月亮。
而后把x-t画出来,就会发现,云的相交是正方形/月亮的可达范围是两条射线围住的。
求在月亮的可达范围内的正方形个数。
而后听说能够二分.....没看下去了。