zoukankan      html  css  js  c++  java
  • 「考试总结」2020-11-30 低智

    T1

    把式子列出来

    如果两个点可被一个机器人接到,那么存在

    [t_a-t_bge |s_a-s_b| ]

    考试的时候根本没有往这个方面想

    然后可以得到两个:

    [t_x+s_xge t_b-s_b ]

    [t_x-s_xge t_b-s_b ]

    那么发现这个式子只和一个项有关,那么先 (sort) 所有的第一维,即加和的形式

    在第二维里面用 (set) 加上 (upper\_bound) 实现最大上升链计数

    其实据说这个部分是导弹拦截

    没做出来的原因是没有列式子,看到题解里面的式子就会了

    T2

    这题目没做出来的原因是没读懂题目,听 (Gjk) 说的时候才明白啥意思……

    如果现在钦定一个 (x+y) 的值,我们搜索所有的方案,如果存在一个方案使得两个选定的集合没有交集,那么这个值不合法

    所以考虑所有没有交集的情况,即如果两个集合算出来 (&) 值为 (0)

    这部分预处理每个无交集的情况下每个集合的数目

    那么把所有处理出来的矩形放到坐标系里面,((0,0),(x_i,y_i))

    矩形里面的点都不行

    那么按照 (x) 排序之后对于所有的 (y) 不断取 (max) 进行更新答案即可

    T3

    非常有技巧,收获挺大的一个题目

    转化一下题面,转化为钦定吃掉多少个水珠 (k),然后求最小的水量消耗

    那么定义 (f_{i,j,0/1}) 为当前区间在 ([i,j]) 同时在区间的左/右端点的最小水量消耗

    所以转移考虑区间 (dp) 即可,长度乘上时间,同时考虑如何维护转移的问题

    这里比较巧妙地把前缀和拎进来用了,每次剪掉的消耗量是后面的数量乘当前的消耗时间

    方程如下:

    f[i][j][1]=min(f[i][j-1][0]+(i+k-j)*(a[j]-a[i]),f[i][j-1][1]+(i+k-j)*(a[j]-a[j-1]));
    f[i][j][0]=min(f[i+1][j][0]+(i+k-j)*(a[i+1]-a[i]),f[i+1][j][1]+(i+k-j)*(a[j]-a[i]));
    

    最后枚举所有长度为 (k) 的区间,减掉消耗即可

    T4

    这题目没做出来的原因是:没有列式子

    记前缀和 (s_x),设 (q_x)(x) 之前剪掉的数,形式化地写出来就是 (-min(s_j-s_{l-1})[l-1le jle x])

    那么答案就是 (q_r-minlimits_{i=l-1}^r (s_r-s_{i}+q_r-q_i))

    所以推一推就是区间最大子段和

    线段树即可……

  • 相关阅读:
    在 《超过 光速 的 方法》 里 的 回复
    超过 光速 的 方法
    在 《我对 相对论 提出了一个 修正,名为 “K氏修正”》 里 的 回复
    我对 相对论 提出了一个 修正,名为 “K氏修正”
    input 只读不能修改
    获取父iframe的高宽
    indexOf ie下的兼容问题
    英文单词自动换行
    textarea 限制字数
    js判断输入框的范围,并且只能输入数字
  • 原文地址:https://www.cnblogs.com/yspm/p/14062294.html
Copyright © 2011-2022 走看看