zoukankan      html  css  js  c++  java
  • csp-s模拟测试54

    两天炸掉了135分

    csp-s模拟测试54

    期望得分:100+72+45

    实际得分:100+21+31

    T2有重边,关于邻接矩阵,它死了TAT,挂了记忆化搜索-39。  然后判c=0想到了1点没度,然而我判的mp[1][x]==1,-12

    T3单调点,可增可减,然而我只判了增,挂了。

    说出题人毒瘤,不如说自己太naive。

    A. x

    有相同质因子的一定不能分开,

    质因数分解,并查集维护。

    B. y

    2^20让任何算法的复杂度无法招架

    meet in the middle思想

    分成两部分,然后把状态接起来看是否可行,指数除以2。

    mp0/1[i][j]邻接矩阵,[j]放bitset,原因在后面。

    设f[i][s][j]表示以i为起点,路径状态s,j为终点的路径是否存在。[j]一维放bitset里

    固定一个i为起点,枚举状态s,枚举终点j,然后如果合法转移点用mp0[j]填装f[i][s<<1],1同理,这样复杂度/32

    设bitset<>g[s][i]表示状态s在i开始,0/1表示不存在或存在。

    然后2^20枚举,合并,bitset直接&看是否可行。

    记得在高位放1,区分010和0010

    C. z

    $x_{i-1}<x_i<x_{i+1} or x_{i-1}>x_i>x_{i+1}$可以合并,这样可以将位移转化为左右横跳。

    任意间隔>l,那么不能一次完成多个任务

    化下式子发现在这种情况下答案是一次函数,可以O(1)

    用链表维护位移,优先队列维护最小间隔。

    以上是口胡,还没有改过。

    csp-s模拟测试55

    期望得分:100+50+20

    实际得分:45+35+20

    T1快读没开long long挂成暴力分qwq

    T2考试结束前10分钟发现部分分打炸(都不喜欢但廉价也可以将就,雾),然后没改完死了。

    T3暴力打的很虚,稍优化还好

    A. 联

    一眼线段树

    看到1e18值域,想了下序列,发现信息必须分段维护。于是确定线段树。

    那只有离散化了,发现答案只可能在1,所有操作的l、r、r+1,把它们加到lsh[]里,这样就能在线段树上保留它们的信息。

    支持区间覆盖,区间异或,区间最前0。

    发现异或会将最前0和最前1交换,那么维护f0[],f1[]表示区间[l,r]中最靠前的0/1

    懒标记lz01[],lzxr[],维护对子区间的覆盖,异或

    注意:

    区间异或 如果有lz01[]那么把本区间的lz01[]取反,如果没有把本区间的lzxr[]取反

    保证覆盖在前,xor在后的正确性

    下下传覆盖标记要将子区间的lzxr[]清掉。

    保证xor在前,覆盖在后的正确性

    down的时候先传覆盖,因为由于以上操作两个懒标记同时存在 一定是先覆盖再xor的操作

    B. 赛

    部分分的启示:当两个人喜欢的物品集合不存在交集,那么一定贪心选最小的装满k,然后再选剩下的最小的。

    一般情况,如果有交集,那么优先考虑,因为加入一个会减少两个,剩下的选择多了,但交集部分的权值导致不单调。

    于是我们枚举交集大小设为r,一定会贪心地从小选。

    只被一个人喜欢的部分都贪心选k-r个。

    再线段树维护下“剩下的物品”,支持insert,delete,前k小值和。查询下m-p1-p2-i填满m

    每次增大r,把选的在线段树中删掉,只被一个人喜欢的物品,可知是弹出最大的,加到线段树里。

    最后一定要注意特判、边界。

    C. 题

    神仙题:

    对每个点单独考虑。

    逆推出如果我要让这个点存活那么要牺牲的点的集合。

    答案就是能逆推回去并且牺牲集合没有交集的点对数。

  • 相关阅读:
    Leetcode 92. Reverse Linked List II
    Leetcode 206. Reverse Linked List
    Leetcode 763. Partition Labels
    Leetcode 746. Min Cost Climbing Stairs
    Leetcode 759. Employee Free Time
    Leetcode 763. Partition Labels
    搭建数据仓库第09篇:物理建模
    Python进阶篇:Socket多线程
    Python进阶篇:文件系统的操作
    搭建数据仓库第08篇:逻辑建模–5–维度建模核心之一致性维度2
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/11611365.html
Copyright © 2011-2022 走看看