zoukankan      html  css  js  c++  java
  • yyb博客的几道神仙题

    该比赛链接

    T5

    题意:

    给你一个(n imes n)的网格,开始有(m)个被涂成黑色的格子,如果存在三个格子((x,y))((y,z))((z,x))满足((x,y))((y,z))均为黑格子且((z,x))为白格子,那么就将((z,x))涂黑,问最后会有多少个被涂黑的格子。

    题解
    关键词:构造 染色(hint: 不是原矩阵的染色)

    T2

    给定一个塔状结构,从上往下的第i层有2i−1个位置。
    在最底层有一个(2n−1)的排列,然后往上的每一个格子都等于正下方,左下方,右下方三个数中第二大的那个。
    显然已知顶端的数,构造一个满足条件的排列。无解输出"No"

    把要的数放在中间,然后让它到达上一层的个数最多,剩下的空位置按照顺序搞就行了。
    。。。。(x + 2)(x - 1)(x)(x + 1)(x - 2)。。。。

    T3

    C - Rabbit Exercise
    转自yyb的blog

    数轴上有n个点,一开始第i个点在位置ai。
    现在按照次序进行m次操作,每次给定一个x,
    然后从x−1和x+1两个点中等概率随机选择一个点,将x的坐标关于这个点对称。
    这m次操作重复进行K轮,求最终每个点所在位置的期望。

    无论怎么样任何一个点每次操作一定是变成(2a_{x−1}(a_{x+1})−a_x)
    设fx表示x这个点当前的期望,假设当前点要进行依次变换,那么期望为(frac{1}{2}((2f_{x−1}−f_x)+(2f_{x+1}−f_x))=f_x+1+f_{x−1}−f_x)
    好的,然后进行K轮就不会了。怎么办呢?(当然是点开题解了啊)。闲着无聊来差分一下(菊开:差分是人类智慧),
    (d_i=f_i−f_{i−1}),那么执行完一次操作之后:(di=(f_{i−1}+f_{i+1}−f_i)−f_{i−1}=f_{i+1}−f_i)(d_{i+1}=f_{i+1}−(f_{i−1}+f_{i+1}−f_i)=f_i−f_{i−1})
    好啊,一次操作等价于交换(d_i,d_{i+1}),那么我们只要记录一下做完一轮操作之后di都到哪里去了,然后就可以倍增了。

    T4

    T2的逆向版
    给定一个序列 2*n + 1项 还是第二大(中位数)向上传递
    求最后顶端那个点的值

    中位数套路操作 -> 01转换
    二分一个值 序列中的每个数大于等于它为1 小于它的为0
    如果有两个连续的0或1 那他们可以直接向上传递(不信你手玩一下)
    位置偏中间的那组必然能撑到最后(因为到后来就是直接剪裁两端的值了,不信你手玩一下)
    如果没有连续?你手玩一下就知道奇数位都一样,并且他们能撑到最后

    【BZOJ5285】[HNOI2018]寻宝游戏
    那么把or写成0, and写成1
    那么,如果当前操作数前面的运算符和某一位上相同,那么就等价于没有进行操作,否则直接知道了运算结果。
    假如只有一个二进制位的话,那么就是一个长度为n的01串x,和一个长度为n的操作串opt。设最后一位为最高位。
    如果最终的结果是1,那么意味着(x>opt),否则最终结果为0。可以手玩验证。

    [ZJOI2018]迷宫
    不会不会自闭了

  • 相关阅读:
    ES6 promise的用法
    elementUI el-dialog 解决embed标签无法实时更新预览PDF文件
    elementUI upload 上传 传参
    elementUI form表单验证
    Ajax 原理过程 同步与异步区别 优缺点
    《深入理解mybatis原理(十二)》 mybatis深入理解之#与$区别
    截取字符串,含有汉字和字母,不能截半个汉字
    输出一个纯英文字符串中出现次数最左的单词和次数,如果有几个次数最多的单词,全部输出
    极简主义生活方式
    MySQL中创建表指定存储引擎
  • 原文地址:https://www.cnblogs.com/hjmmm/p/10663163.html
Copyright © 2011-2022 走看看