苏州省选冲刺第二天

正题

      现在每天都是三步走吧,早上考5个小时,午饭,下午讲题加补题,晚饭,讲专题。

      这两天讲了一些奇技淫巧(数论和多项式,而且是很冷门那种。

      早上考了三道题,其中有两道题不错(第3题莫比乌斯反演加四元环计数我也不会,分享一下:

      第一题:

      已知,n个变量,m个方程组为x_a=[0/1]\ \or\ x_b=[0/1]这样的形式,每次合并指定的方程组,形成新的方程组,共m-1次,每次询问合并后的新方程组是否有公共解。

      1.很明显暴力啊,直接枚举每个x的取值,就可以了。

      2.聪明一点的发现,每次合并相当于解决一个2-sat问题,nm完美解决。

      3.还是不够优秀,从旧方程组向新方程组连边,形成了一棵树。接着如果一个新方程组可行,那么这个新方程组所代表的子树肯定可行,相反,如果它不可行,它的父亲以及祖先肯定不可行。

       那么我们就把这棵树建出来,然后轻重链剖分一下,对于每一条链二分一下可行和不可行的断点位置。总时间复杂度就是两个log的。

       但是这样的话就要求离线(寻求在线做法。

      第二题:

      给出n个奶酪的体积和质量,要求最多切两刀,把它们分为体积和质量都相等的两份。

      连暴力都不知道怎么打???

     1.直接讲正解,因为这题暴力不存在,枚举两刀的位置肯定是不可行的。

     2.有同学(zhf神犇 ,把每一块奶酪的体积和质量看作一个向量,那么只要把所有的向量分成两部分。。。。。可惜我后面听不清,老师说这种方法细节太多,不优美,就没有深入了解。

     3.其实可以把每个奶酪看成是平面上的许多个矩阵,长为体积,宽为密度,把他们按宽从小到大排序。那么我们的目的,就是要在这一排矩阵中,找到长为总的一半,面积为总的一半的一堆矩形。考虑尺取,相当于在其中选一个长为总的一半的区间,所对应的面积就是要求的,又因为这样的面积肯定是 在按照宽排序后 由小变大的,所以肯定在中间存在答案。二分位置就可以做到两个log。

      

你可能感兴趣的:(苏州省选冲刺第二天)