zoukankan      html  css  js  c++  java
  • 20210623

    T1

    使用根号分治思想,发现我们有一种方法可以快速更新答案,考虑我们新选中一种颜色,找这种颜色相邻的位置有多少个位置的颜色是被选中的,然后再减去被选中颜色出现的次数,即为这次修改操作对于答案的贡献,删除颜色同理可得。

    那么我们将出现次数大于 (sqrt n) 的元素拿出来预处理两两相邻对数。

    每次询问时,如果出现次数少,则枚举出现位置暴力更新,否则的话枚举出现次数多的元素进行更新。

    T2

    对于每一盏灯,将它排序,发现非零部分的排序一定是正确的,那么可以进行连边,边权是相邻的差值。可以发现环的权值和即为答案。

    T3

    设 dp[i][j] 表示在第 i 个房间最多只有 j 个人。

    对于dp[i][j]

    如果 (j < a[i]) ,将 dp[i][j] 转移到 dp[i+1][0...b[i]]。

    如果 (a[i] leq j < a[i]+b[i]) ,将 dp[i][j] 转移到 dp[i+1][j-a[i]]。

    如果 (j geq a[i]+b[i]) 则转移到 dp[i+1][j]。

  • 相关阅读:
    真正的e时代
    在线手册
    UVA 10616 Divisible Group Sums
    UVA 10721 Bar Codes
    UVA 10205 Stack 'em Up
    UVA 10247 Complete Tree Labeling
    UVA 10081 Tight Words
    UVA 11125 Arrange Some Marbles
    UVA 10128 Queue
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/nao-nao/p/14926876.html
Copyright © 2011-2022 走看看