刷陈题ing @@

         

              在刷去年noip集训的题目时,遇到了一些还不错的题目,小小的汇总一下。

         更新ing

  

          1.一个初始为空的序列,给出n条信息,每一条信息让你把某个数插入到指定位置,n<=300000,求最后的序列情况.

           倒做,已知前导空位的数量,用zkw线段树log(n)找到该位置。

  

           2.给出一个长度为n的数列,要求取其中一段,使其平均数大于等于给定的m,问方案数. n<=100000 m<=10000

           将每个数减去m,问题转化为求有多少个区间的和大于等于0,离散树状数组即可。


           3.n个数,选取若干个数,使得这若干个数的和为m,数很大不能dp  n<=40;

           搜索前一半,再搜索另一半并与前一半hash计算方案。


          4.给定一个无向图,求一个生成树,使得最大边与最小边之差最小。 V,E<=5000

           利用kruscal 性质, 枚举最小边,裸做kruscal。


          5.让你求一个长度最小的递增序列,序列的最后一项是n,除第一个数外,序列满足每一个数都是令一个数的整数倍或令两个数的和 n<=1000

           数字1 是必须要的,从1开始搜索,扩展新的数,加上必要的可行性剪枝和搜索方法(只用当前最大的数和另外的数来相加扩展)。


           6.给定一个数s,求一个数n,使得在序列1~n每一项前添加+/-,使得计算得到的值是s。s<=10^12

            手算找出规律:n mod 4=3 or n mod 4=0 时,可以拼成0~n的所有偶数,否则可以拼成0~n的所有奇数;

            先二分用等差数列求和公式逼近,在利用规律调整。


          7.平面二维坐标系中一些点,有一个直角边为A,B(A 垂直y轴,B垂直x轴)的Rt三角形,选取任意一个点为该Rt三角形的直角顶点,问三角形最多覆盖几个点。

           问题转化为三个偏序关系  x>=X, y>=Y, Bx+Ay>=BX+AY+AB

           由于偏序关系的特殊性,不需要维护三个偏序,只要把点按照Ax+By排序,倒着插入,维护两个树状数组,利用容斥原理即可。

  

          8.给定一个矩阵,矩阵中有一些障碍,求该矩阵中有多少个子矩阵不包含任何障碍。

            做每一行时,维护一个单调栈,栈中单调递增的是每一列的到该行的延伸长度,并记录栈中矩阵数量,加栈和弹栈时顺便维护,并用这个值累加答案。

 

        暂时就这些了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值