zoukankan      html  css  js  c++  java
  • CodeCraft-20 (Div. 2) 总结

    闲话

    这场做的时候完全心不在焉,导致做了三题就跑路看电影去了(大雾)……晚上做东西意志力真的很差

    第二天补了好久才补完,F 题虽然难度不大但是卡了很久,看来这种类似 [HAOI2012] 高速公路 的题目还是做得不熟练

    D 题反应出思维能力还是很欠缺

    题解

    (单击题号查看完整题解)

    题意描述
    题解
    A 每个学生的分数最少为 (0),所以我们只要把除了第 (1) 名学生之外的所有学生的分数全部给第 (1) 个学生就能使他的分数最大。
    B 实质上就是整个字符串左移若干位,多出来的部分挪到右边,并根据奇偶翻转
    C 给定两个序列 (a,b),保证每个序列中所有数字的 GCD 为 (1),设 (a*b=c),给定质数 (p),求 (t) 使得 (c_t) 不能被 (p) 整除 要使 (c_i mod p eq 0),则 (a_0b_i, a_1b_{i-1}, dots, a_ib_0) 中至少有一项满足 (a_xb_y eq 0 mod p),这要求 (a_x,b_y eq 0 mod p),于是我们只需要按下标从小到大找到第一个 (a_i eq 0, b_j eq 0 mod p),那么 (i+j) 就是答案
    考虑充分性,设第一个不能被 (p) 整除的是 (a_i,b_j),那么对于 (c_{i+j}),它的其它项中一定都含有 (p) 因子
    D 对一个 (n imes n) 的棋盘,每个格子上有一个字母,表示遇到这个格子就向着某个方向走或者停止。现在给定从每个位置开始会走到的位置,或者死循环,试构造一个合法的棋盘,或者输出 INVALID。 除去死循环的部分,终点相同的点会形成独立的联通块,我们从终点开始反向 DFS 即可
    如果死循环是单独的一个点,则 INVALID
    否则,我们强行构造出一个二元环,然后当做第一种情况做即可
    E 需要在 (n) 个人中选出 (p) 个人站着队伍中的各个位置上,再从剩下的 (n-p) 个人中选出 (k) 个人作为观众。第 (i) 个人作为观众可以有 (a_i) 的得分,作为队伍中第 (j) 个位置上的人可以有 (s_{i,j}) 的得分,求得分的最大值。(nleq 10^5, pleq 7) 将人按照 (a) 从大到小排序,这样如果敲定了哪些人是队伍,那么剩下的靠前的 (k) 个一定是观众
    考虑状压 DP,设 (f[i][j]) 表示考虑了前 (i) 个人,队伍中各个位置的状态为 (j) 的得分最大值,决策下一个人放在队伍的哪一个位置,或者不入队,如果不入队则判定如果 (i-popcount(j) leq k) 则去当观众
    F 定义一个 (n) 元序列 (p_i),如果 (n=1),则序列权值为 (0),否则序列权值就是原序列排序后相邻两项乘积的和。现在等概率地选出一个子序列,问它的权值的期望是多少。支持动态单点修改。 对于静态情况,答案为
    $$sum_{i=1}^n sum_{j=i+1}^n frac{p_i p_j}{2^{j-i+1}}$$
    考虑用线段树维护,对于区间 ([l,r]),我们设 (val) 为当前区间权值,(lv=sum_{i=l}^r p_i2^{i-l})(rv=sum_{i=l}^r p_i/2^{i-l+1})(sz) 是当前区间内数的个数,则
    $$val=val_L+val_R+frac{1}{2} vl_Lvr_R/2^{sz_L} sz=sz_L+sz_R vl= vl_L+vl_R2^{sz_L} vr=vr_L+vr_R/2^{sz_L}$$
    对于单点 (a),它的 (val=0, sz=1, vl=a, vr=a/2)
    考虑到序列中有重复元素,我们先将所有元素(包括修改的)一起读进来排序,然后将原始的先激活,修改后的先不激活((val=0,sz=0,vl=0,vr=0)),一起挂在线段树上

    2020年3月11日

  • 相关阅读:
    objcopy使用
    linux中的strip命令简介
    strace命令详解
    bash执行顺序:alias --> function --> builtin --> program
    Ubuntu下安装docker
    uvm中类继承和phase
    error和exception有什么区别?
    sleep() 和 wait() 有什么区别?
    CSS3实现环形进度条?
    请写出你最常见到的5个runtime exception?
  • 原文地址:https://www.cnblogs.com/mollnn/p/12464574.html
Copyright © 2011-2022 走看看