求证伪思路
查看原帖
求证伪思路
761137
Double_Light楼主2024/11/30 17:16

fi,0/1,0/1f_{i,0/1,0/1} 表示考虑到第 ii 位,交换后 s1s_1ii 位为 0/10/1s2s_2ii 位为 0/10/1。然后分四种情况讨论:

  1. 两个串都不交换:

    fi,s1,i,s2,i=max(fi1,0,0,fi1,0,1,fi1,1,0,fi1,1,1)+[s1,i=s2,i]f_{i,s_{1,i},s_{2,i}}=\max(f_{i-1,0,0},f_{i-1,0,1},f_{i-1,1,0},f_{i-1,1,1})+[s_{1,i}=s_{2,i}]

  2. 交换 s1s_1 的第 ii 位和本次交换前的最后一位: fi,0,s2,i=max(fi1,0,0+[s1,i=0]+[s2,i=0]1,fi1,0,1+[s1,i=1]+[s2,i=0])f_{i,0,s_{2,i}}=\max(f_{i-1,0,0}+[s_{1,i}=0]+[s_{2,i}=0]-1,f_{i-1,0,1}+[s_{1,i}=1]+[s_{2,i}=0]) fi,1,s2,i=max(fi1,1,0+[s1,i=0]+[s2,i=1],fi1,1,1+[s1,i=1]+[s2,i=1]1)f_{i,1,s_{2,i}}=\max(f_{i-1,1,0}+[s_{1,i}=0]+[s_{2,i}=1],f_{i-1,1,1}+[s_{1,i}=1]+[s_{2,i}=1]-1) 其中 1-1 是拆散了之前匹配的 (0,0)(0,0)(1,1)(1,1),前提是 t1,i=t1,i1=1t_{1,i}=t_{1,i-1}=1

  3. 交换 s2s_2 的第 ii 位和本次交换前的最后一位: fi,s1,i,0=max(fi1,0,0+[s1,i=0]+[s2,i=0]1,fi1,1,0+[s1,i=0]+[s2,i=1])f_{i,s_{1,i},0}=\max(f_{i-1,0,0}+[s_{1,i}=0]+[s_{2,i}=0]-1,f_{i-1,1,0}+[s_{1,i}=0]+[s_{2,i}=1]) fi,s1,i,1=max(fi1,0,1+[s1,i=1]+[s2,i=0],fi1,1,1+[s1,i=1]+[s2,i=1]1)f_{i,s_{1,i},1}=\max(f_{i-1,0,1}+[s_{1,i}=1]+[s_{2,i}=0],f_{i-1,1,1}+[s_{1,i}=1]+[s_{2,i}=1]-1) 前提是 t2,i=t2,i1=1t_{2,i}=t_{2,i-1}=1

  4. 两组都交换: fi,0,0=fi1,0,0+[s1,i=s2,i]f_{i,0,0}=f_{i-1,0,0}+[s_{1,i}=s_{2,i}] fi,0,1=fi1,0,1+[s1,i=s2,i]f_{i,0,1}=f_{i-1,0,1}+[s_{1,i}=s_{2,i}] fi,1,0=fi1,1,0+[s1,i=s2,i]f_{i,1,0}=f_{i-1,1,0}+[s_{1,i}=s_{2,i}] fi,1,1=fi1,1,1+[s1,i=s2,i]f_{i,1,1}=f_{i-1,1,1}+[s_{1,i}=s_{2,i}] 前提是 t1,i=t1,i1=t2,i=t2,i1=1t_{1,i}=t_{1,i-1}=t_{2,i}=t_{2,i-1}=1

最终只过了前五组大样例。

2024/11/30 17:16
加载中...