SDOI2014 总结

文章目录

  • 3976 【SDOI2014】数表
  • 3977 【SDOI2014】数数
  • 3978 【SDOI2014】旅行
  • 3980 【SDOI2014】LIS

3976 【SDOI2014】数表

离散询问, m o b i u s mobius mobius反演,用树状数组维护值的前缀和(支持动态改变)

3977 【SDOI2014】数数

A C AC AC自动机+ d p dp dp,记 f i , j , k = 0 / 1 f_{i,j,k=0/1} fi,j,k=0/1表示长度为 i i i,节点为 j j j,是否抵达上限 k = 0 / 1 k=0/1 k=0/1

C a s e   1 : Case\ 1: Case 1:无限制 f i , s o n , 0 + = f i − 1 , j , 0 ( v a l ∈ [ 0 , 9 ] ) f_{i,son,0}+=f_{i-1,j,0}(val\in[0,9]) fi,son,0+=fi1,j,0(val[0,9])

C a s e   2 : Case\ 2: Case 2:有限制 不到上限 f i , s o n , 0 + = f i − 1 , j , 1 ( v a l ∈ [ 0 , t o p − 1 ] ) f_{i,son,0}+=f_{i-1,j,1}(val\in[0,top-1]) fi,son,0+=fi1,j,1(val[0,top1])

C a s e 3 : Case 3: Case3:有限制 到上限 f i , s o n , 1 + = f i − 1 , j , 1 ( v a l = t o p ) f_{i,son,1}+=f_{i-1,j,1}(val=top) fi,son,1+=fi1,j,1(val=top)

3978 【SDOI2014】旅行

树剖+动态开点线段树,每个种族一棵线段树

3980 【SDOI2014】LIS

C a s e   1 Case\ 1 Case 1:网络流最小割,每个点拆成两个点

  • 自己连边边权 c o s t i cost_i costi
  • d p i = L I S dp_i=LIS dpi=LIS的点, i 1 i_1 i1 T T T连边 i n f inf inf
  • d p i = 1 dp_{i}=1 dpi=1的点, S S S i 2 i_2 i2连边 i n f inf inf
  • 能传递的点对 ( i , j ) (i,j) (i,j)( a i < a j a_iai<aj d p i + 1 = = d p j dp_i+1==dp_j dpi+1==dpj), i 2 i_2 i2 j 1 j_1 j1连边 i n f inf inf

C a s e   2 Case\ 2 Case 2:字典序最小,按边权从小到大枚举边,遇到满流边 ( u , v ) (u,v) (u,v) u u u S S S回流, v v v T T T回流,再删边 v a l = 0 val=0 val=0

你可能感兴趣的:(题解题解,省选刷题)