【学习笔记】ABC265/AGC012
上次写博客还是在5天前了
权游真好看
ABC265
Manhattan Cafe
离离原上谱
设 d p i [ j ] [ k ] dp_i[j][k] dpi[j][k]表示考虑前 i i i维,其中 D 1 − D 2 = j D1-D2=j D1−D2=j, D 1 + D 2 = k D1+D2=k D1+D2=k的方案数
设 d = ∣ p i − q i ∣ d=|p_i-q_i| d=∣pi−qi∣,转移如下:
1.1 1.1 1.1若 p i ≤ x ≤ q i p_i\le x\le q_i pi≤x≤qi, d p i − 1 [ j ] [ k ] → d p i [ j − d ] [ k + d ] ∼ d p i [ j + d ] [ k + d ] dp_{i-1}[j][k]\to dp_i[j-d][k+d]\sim dp_i[j+d][k+d] dpi−1[j][k]→dpi[j−d][k+d]∼dpi[j+d][k+d]
1.2 1.2 1.2若 x < p i ≤ q i x<p_i\le q_i x<pi≤qi, d p i − 1 [ j ] [ k ] → d p i [ j − d ] [ k + d + 2 + 2 y ] dp_{i-1}[j][k]\to dp_i[j-d][k+d+2+2y] dpi−1[j][k]→dpi[j−d][k+d+2+2y]
1.3 1.3 1.3若 p i ≤ q i < x p_i\le q_i<x pi≤qi<x, d p i − 1 [ j ] [ k ] → d p i [ j + d ] [ k + d + 2 + 2 y ] dp_{i-1}[j][k]\to dp_i[j+d][k+d+2+2y] dpi−1[j][k]→dpi[j+d][k+d+2+2y]
注意到转移其中一维是定值,可以维护其差分序列,做到转移 O ( 1 ) O(1) O(1),总复杂度 O ( n d 2 ) O(nd^2) O(nd2)。
012 Inversion
sb数据结构
相信大家都会吧
AGC012
Colorful Balls
若原序列中位置 i i i和位置 j j j能交换那么连一条边 ( i , j ) (i,j) (i,j)
显然同一连通块内可以任意排列 并不显然 ,因为不在同一连通块可以看作是独立的,对于同一连通块可以归纳法证明。
并查集维护连通性即可。
Tautonym Puzzle
考察序列前半部分是 1 ∼ n 1\sim n 1∼n的排列 p p p,后半部分是 1 ∼ n 1\sim n 1∼n。
问题转化为左边上升子序列的数目。设空串合法,考虑从末尾插入一个数那么数目乘 2 2 2,从开头插入一个数那么数目加 1 1 1。最终序列长度为 4 log  n 4\log n 4logn。
Splatter Painting
简单题。倒序操作,记录从每个点出发能扩散的最远距离,显然是递增的,复杂度 O ( m d ) O(md) O(md)。
AtCoder Group Contest
简单题。显然从大到小排序,然后隔一个位置选一个即可。
Camel and Oases
我会转化!!
问题转化为把原序列划分成若干区间,区间内相邻距离不超过 V 2 i \frac{V}{2^i} 2iV。
然后就比较简单了。
Prefix Median
dp神题啊。
考虑逆序构造。每次删除两个数后中位数会不动或移动到相邻位置,因此合法的 
     
      
       
       
         b 
        
       
      
        b 
       
      
    b序列应该满足:
  
     
      
       
       
         1.1 
        
       
      
        1.1 
       
      
    1.1对于任意 
     
      
       
       
         i 
        
       
         ∈ 
        
       
         [ 
        
       
         1 
        
       
         , 
        
       
         n 
        
       
         − 
        
       
         1 
        
       
         ] 
        
       
      
        i\in [1,n-1] 
       
      
    i∈[1,n−1],不存在 
     
      
       
       
         j 
        
       
         < 
        
       
         i 
        
       
      
        j<i 
       
      
    j<i满足 
     
      
       
        
        
          b 
         
        
          i 
         
        
       
         < 
        
        
        
          b 
         
        
          j 
         
        
       
         < 
        
        
        
          b 
         
         
         
           i 
          
         
           + 
          
         
           1 
          
         
        
       
      
        b_i<b_j<b_{i+1} 
       
      
    bi<bj<bi+1或 
     
      
       
        
        
          b 
         
         
         
           i 
          
         
           + 
          
         
           1 
          
         
        
       
         < 
        
        
        
          b 
         
        
          j 
         
        
       
         < 
        
        
        
          b 
         
        
          i 
         
        
       
      
        b_{i+1}<b_j<b_i 
       
      
    bi+1<bj<bi
  
     
      
       
       
         1.2 
        
       
      
        1.2 
       
      
    1.2对于任意 
     
      
       
       
         i 
        
       
         ∈ 
        
       
         [ 
        
       
         1 
        
       
         , 
        
       
         n 
        
       
         ] 
        
       
      
        i\in [1,n] 
       
      
    i∈[1,n],满足 
     
      
       
        
        
          b 
         
        
          i 
         
        
       
         ∈ 
        
       
         [ 
        
       
         i 
        
       
         + 
        
       
         1 
        
       
         , 
        
       
         2 
        
       
         n 
        
       
         + 
        
       
         1 
        
       
         − 
        
       
         i 
        
       
         ] 
        
       
      
        b_i\in [i+1,2n+1-i] 
       
      
    bi∈[i+1,2n+1−i]
首先对于连续的 a i a_i ai只保留离中位数最近的那一个。
考虑从当前位置向左挪或向右挪时把跨过的全部删掉,不能作为后续选择,并且其限定的区间每次会向左和向右扩展一位,那么我们设 d p [ i ] [ L ] [ R ] dp[i][L][R] dp[i][L][R]表示填了 i ∼ n i\sim n i∼n,当前位置左边有 L L L个可以选择,右边有 R R R个可以选择的方案数。转移时枚举往哪边跳,复杂度 O ( n 4 ) O(n^4) O(n4)。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号