苏州省选冲刺第二天

博客分享了数论和多项式相关题目解题思路。早上考的三道题中,分享了两道题的解法。第一题关于方程组公共解问题,介绍了暴力枚举、解决2 - sat问题及建树轻重链剖分等方法;第二题是奶酪分割问题,给出了向量法和矩阵尺取二分法等思路。

正题

      现在每天都是三步走吧,早上考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。

      

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值