T1:很明显选出来的图形一定是一个三角形,那么我们就n^3枚举,然后用海伦公式计算。比赛时因为精度问题90分。
总结:处理精度问题的套路:把a==b写成abs(a-b)<0.00000000001
T2:很明显用线段树维护区间和。
对于1操作:首先二分求出一个y,使得y-a[i]+1-a[i]到y的值<=b[i]且这个值最大且在此前提下y最小。然后二分求出一个x使得a[i]到x的值=x-a[i]+1。那么答案就是x+1,y。然后再对这个区间进行区间修改,把这个区间填满。
对于2操作:求出区间值,然后把区间清空。
总结:对于操作1找y时,正确的打法如下:
1、求出能达到的最大值:min(a[i]到n的值,b[i])
2、二分时,若小于最大值则往右调,若等于最大值就更新答案且往左调,若大于最大值就往左调。
T3:通过暴力程序来找规律发现:把a、b的分界点标在线段上,使之分成许多条小线段,二每条小线段的值是相同的。然后我们就可以求出每一个小线段的值,加起来就好了。
T4:具体见OJ上的题解。
总结:比赛时还是被卡精度了,精度很重要。