T1
题意:在一个 n *m 矩阵中,每一个元素都是非负整数,给出两个整数 P 和 S,对于若干个矩形区域,然后把区域内所有≥P 的元素个数与他们的和相乘得到权值q,q之和与 S 之差的绝对值小于某一个值 D,胜利,反之失败。已知将要选择的矩形区域,在 S 和 D 一定的情况下,他能否胜利,以及q之和与 S 之差的绝对值最小是多少。
先对P进行二分,再对于每个矩阵 [1,1,i,j] N2 处理出矩阵内大于P的元素和,以及个数。再对于每个询问O(1)查询。
T2:
题意:在一个平面直角坐标系中,有 n 条直线,有Q个询问,求一些直线的位置关系。最后要求输出平行直线的对数(重合也算平行)。
对于询问,判断斜率k是否相等,b是否相等即可。然而无辜80WA,调了一下发现输出应该和标准输出一样QAQ……
T3:
题意:一个有n行的文本,每一行的字符数量不尽相同。文本中有一个光标,一开始在第1行的最后一个字符后面,wzj可以在光标的位置输入或删除字符。当然,他也可以用方向键移动光标,可以往上、下、左、右移动。要注意的是,如果当前光标所在的位置前面有a个字符,如果要将其向下(上)移动,而下(上)一行的字符不足a个,那么光标就会落在下(上)一行的最后一个字符后面。
现在,wzj知道这个文本的行数n和每一行所含的字符数ai,他的上司给了他一个操作序列,共有q个操作,操作分为3种,如下:
To a:将光标移到第a行的最后一个字符之后。
Insert a:在当前光标所在行的末端插入a个字符。
Delete a:在当前光标所在行的末端删除a个字符。
已知向上、下、左、右移动一格,插入或删除一个字符都需要1次按键,而wzj又是一个很懒的人,他想知道要完成这些操作至少需要多少次按键。特殊地,如果删除操作中当前行的字符不足a个,则按键数应为该行有的字符数。
线段树区间查询min,单点修改。记得维护一下当前行数以及所在列。