zoukankan      html  css  js  c++  java
  • A♂G&C012

    A♂G&C012


    A AtCoder Group Contest

    从大到小sort后输出(a_2+a_4+a_6+ldots a_{2n})

    好♂啊,只会背结论/kk

    B Splatter Painting

    根据套路从后往前bfs,由于(d)很小可以拆点,点((x,i))表示距离(xleq i)的点都被染得颜色

    C Tautonym Puzzle

    真不会= =只会二进制分组,大概比正解辣鸡多了

    摸题解

    首先你有一个排列(p[1-n]),然后在后面再加一个(1-n),序列数量就是(p)的上升子序列个数

    那么现在有一个空排列,考虑从小到大加数,上升子序列个数怎么变

    1. push_back,个数*2+1
    2. push_front,个数+1

    发现不好搞,如果强至空序列也算上升子序列,那么一开始数量是1,操作变成了

    1. push_back,个数*2
    2. push_front,个数+1

    就很棒了,可以根据二进制位直接从(1)推到(n+1)了(注意是(n+1)

    D Colorful Balls

    这题怎么我都会/kk

    如果两个球可交换就连一条边,显然一个连通块中的球都可以相互换,答案是所有连通块跑可重排列的答案积

    考虑相同颜色的交换,先拿出一种颜色,拿出这种颜色(w)的最小值(min w),那么这种颜色满足(w+min wleq X)的所有球都可以任意交换,所以它们的(w)可以全设为(min w)

    显然只会有最多一个连通块有边,其他都是散点

    然后是不同颜色的交换,先拿出(min w)值最小的颜色(c),和上面同理,其他颜色满足(w+min wleq Y)的所有球都可以任意换,加上这种颜色可以任意换的可以组成一个连通块

    还可以拿一个另一种颜色的和(c)(w)较大的换,这些所有能换的可重排列就是答案

    E Camel and Oases

    显然只有(log)个不同的(V)值,对这些(V)预处理出连通块情况

    然后很妙,要在每层选一个连通块拼出([1,n]),询问多个就是钦定第一层选的区间,可以前缀和+状压,(f_i)表示选了集合(i)的层最多可以拼到的右端点,反过来再来一个

    F Prefix Median

    不是很会证就不写了

    https://www.cnblogs.com/cjyyb/p/10709353.html#f---prefix-median

  • 相关阅读:
    第八章 用通配符进行过滤
    第七章 数据过滤
    第六章 过滤数据
    第五章 排序和检索数据
    第四章 检索数据
    MySql 首记
    Effective C++ 6.继承与面向对象设计
    Effective C++ 5.实现
    ~~函数基础(五):内置函数~~
    ~~函数基础(四):递归函数~~
  • 原文地址:https://www.cnblogs.com/xzz_233/p/11724476.html
Copyright © 2011-2022 走看看