正题
现在每天都是三步走吧,早上考5个小时,午饭,下午讲题加补题,晚饭,讲专题。
这两天讲了一些奇技淫巧(数论和多项式,而且是很冷门那种。
早上考了三道题,其中有两道题不错(第3题莫比乌斯反演加四元环计数我也不会,分享一下:
第一题:
已知,n个变量,m个方程组为这样的形式,每次合并指定的方程组,形成新的方程组,共m-1次,每次询问合并后的新方程组是否有公共解。
1.很明显暴力啊,直接枚举每个x的取值,就可以了。
2.聪明一点的发现,每次合并相当于解决一个2-sat问题,完美解决。
3.还是不够优秀,从旧方程组向新方程组连边,形成了一棵树。接着如果一个新方程组可行,那么这个新方程组所代表的子树肯定可行,相反,如果它不可行,它的父亲以及祖先肯定不可行。
那么我们就把这棵树建出来,然后轻重链剖分一下,对于每一条链二分一下可行和不可行的断点位置。总时间复杂度就是两个log的。
但是这样的话就要求离线(寻求在线做法。
第二题:
给出n个奶酪的体积和质量,要求最多切两刀,把它们分为体积和质量都相等的两份。
连暴力都不知道怎么打???
1.直接讲正解,因为这题暴力不存在,枚举两刀的位置肯定是不可行的。
2.有同学(zhf神犇 ,把每一块奶酪的体积和质量看作一个向量,那么只要把所有的向量分成两部分。。。。。可惜我后面听不清,老师说这种方法细节太多,不优美,就没有深入了解。
3.其实可以把每个奶酪看成是平面上的许多个矩阵,长为体积,宽为密度,把他们按宽从小到大排序。那么我们的目的,就是要在这一排矩阵中,找到长为总的一半,面积为总的一半的一堆矩形。考虑尺取,相当于在其中选一个长为总的一半的区间,所对应的面积就是要求的,又因为这样的面积肯定是 在按照宽排序后 由小变大的,所以肯定在中间存在答案。二分位置就可以做到两个log。
博客分享了数论和多项式相关题目解题思路。早上考的三道题中,分享了两道题的解法。第一题关于方程组公共解问题,介绍了暴力枚举、解决2 - sat问题及建树轻重链剖分等方法;第二题是奶酪分割问题,给出了向量法和矩阵尺取二分法等思路。
1904





