• 6.9赛后总结


    6.9模拟赛赛后总结

    赛时历程

    大约八点看完题目感到,啥也不会,好像T3的暴力最可做。

    打着打着发现第一个性质分也好做,记录个las然后小小讨论一下就好。

    对拍很成功,已经九点多。

    其它啥也不会怎么搞,T1想到了一个(O(y-x))(y-x<=1e9)的伞兵DP,估计也骗不了分。

    慢慢的,到点了。

    赛后发现

    我发现以前的三段结构很合理,所以现在换回来。

    1 T1果然没分。 T3竟然不知道怎么的吧freopen给注释了,光荣抱玲

    2 T3正解可以用CDQ,都写了这么多CDQ了,还是没感觉,发现不了这是CDQ可做的,不够敏感,主要是也不知道能转换成二维平面,就更不谈什么三维偏序了。

    3 T1的DP其实并不难,但是基础的(n^2)都没有想到,着实有点菜,应该多思考思考的(猛然想起这句话不是第一次提到,确实需要多思考啊,不能光说)。

    简单题解

    好好总结。

    T1 要考虑DP,首先要考虑特殊点,也就是喜爱的城市的状态,只有他们会影响到决策(不然肯定每次跳z个会最优),因此,考虑喜爱的城市到喜爱的城市的转移,为了直接考虑到起点和终点,把他们当成数值特殊点的喜爱的城市即可。然后考虑(f[i]) 作为到达城市(i)的最小花费,那么有一个转移(f[i]=min{f[j]+frac{c[i]-c[j]}{z}*a}-m[i]) ,考虑快速的找到(j) 这个决策点,这里的思路感觉很难切入,可能只有见过了才能联想到,感觉像是某些数学题会用到的思路:把(c[i]) 拆成(c[i]=k[i]*z + b[i]) 那么,状态的转移变成了(f[i]=min{f[j]-k[j]*a+lceil{frac{b[i]-b[j]}{z} ceil}*a}+k[i]*a-m[i]) ,这里由于(b[i])(c[i]\%z)的余数,所以说只有(b[i]>b[j])的时候,这一部分(lceil{frac{b[i]-b[j]}{z} ceil}*a) 才会产生 a的贡献,由此,对于已经处理过的(j),可以考虑以(b[j])做下标存储有关它的决策的值(f[j]-a*k[j]),放入到数据结构中,每次决策时针对(0)~(b[i]-1)的部分查找一次最小值,然后再加上贡献 (a) 来更新 (f[i]),针对(b[i])~(z-1)的区间查找一次最小值,并只用这个值来更新(f[i]),这样就能够(O(nlogn)) 的解决问题。

    T3 要想到偏序之类的思路,就要把每次要询问的区间((l,r))当作一个点,每次更改一个点的时候,它会产生两种影响:1 这个点如果是状态是0而现在变成1,对于它能够到达的连续的左边的1,最左为L,以及右边的1,最右为R,(用set存0的位置然后二分查找确定边界即可找到这个L和R),跨过x的点对开始计时,对于跨过(x)的点对,他们满足这样的条件:(lle x)(xle r),把他们当作一个点((l,r)),那么根据这样的关系,可以认为这些点在左下角为((l,x)),右上角为((x,r))的矩形中,所有的点都开始计时,也就是所有的点得到贡献(-i) (i为此时的时刻),对于这样的二维区间修改,单点查询问题,可以用标记永久化的二维线段树来解决,可是我不会 可是代码实现很难。考虑做一下差分的转化,一个左下角为((a,b))右上角为((c,d))的矩形集体(+v),相当于差分区间进行 ((a,d+1)-v),((c+1,b)-v),((a,b)+v) ((c+1,d+1)+v) , 这样,问题就转换为了单点修改,区间查询的问题,然后就是一个偏序的问题了,对于每个点统计它的二维前缀和就好。2 这个点是1而现在变成0,同样有上述的概念,不过所有点的贡献是(+i)。统计这样的二维前缀和,就是CDQ处理二维平面问题,就是一个板子了。

    T2 是一道生成函数,二项式反演,NTT优化的高级题目,超纲了超纲了 暂且做不来。

  • 相关阅读:
    第二次刷题感受——路漫漫其修远兮,吾将上下而求索。
    刷题就是照镜子——第一次刷2008年初赛题感受
    第一次集训刷题感受
    我的第一个博客
    预测房价的回归问题
    电影评论的情感极性分析
    语音助手是这样子的(二)
    语音助手是这样子的(一)
    软工第一次作业
    2020软件工程第五次作业_第二组
  • 原文地址:https://www.cnblogs.com/mikuo/p/14869077.html
Copyright © 2020-2023  润新知