CF1882E2 Two Permutations (Hard Version) 做题记录

给定一个 nn 的排列 aa 和一个 mm 的排列 bb

每次操作你可以:

  • 选择两个正整数 1in1\le i\le n1jm1\le j\le m
  • aa 修改为 a[i+1,n]aia[1,i1]a_{[i+1,n]}a_ia_{[1,i-1]},将 bb 修改为 b[j+1,n]bjb[1,j1]b_{[j+1,n]}b_jb_{[1,j-1]}

构造一组操作使得 pi=ip_i=iqi=iq_i=i 且操作次数最少。如果无解,输出 1-1

1n,m25001\leq n,m\leq 2500

阅读全文 »

AGC028E High Elements 做题记录

给定一个 nn 的排列 PP,一个长 nn 的 01 串 SS 合法当且仅当:

  • AA 为所有 Si=1S_i=1aia_i 构成的子序列,BB 为所有 Si=0S_i=0aia_i 构成的子序列,则 AABB 的前缀最大值个数相等;

求所有合法的 SS 中字典序最小的那个。

1n2×1051\le n\le 2\times 10^5

阅读全文 »

LOJ6094 「Codeforces Round #418」归乡迷途 做题记录

给定长 nn 的序列 dd,求有多少个 nn 个点的有标号简单无向图(无自环重边)满足:

  • ii 的度数为 did_i
  • 11 到点 ii 有且仅有一条最短路;
  • j<i\forall j<i,点 11 到点 ii 的最短路长度大于等于点 11 到点 jj 的;

998244353998244353 取模。

3n3003\le n\le 3002di32\le d_i\le 3

阅读全文 »

ARC165D Substring Comparison 做题记录

给定两个正整数 n,mn,m 以及 mm 组限制 l1i,r1i,l2i,r2il1_i,r1_i,l2_i,r2_i,求是否存在一个长 nn 的序列 aa 满足 1im\forall 1\le i\le m 都有 a[l1i,r1i]a_{[l1_i,r1_i]} 的字典序严格小于 a[l2i,r2i]a_{[l2_i,r2_i]}

1n,m2×1031\le n,m\le 2\times 10^3

阅读全文 »

CF1863G Swaps 做题记录

给定长度为 nn 的序列 aa,每次操作可以选定一个 ii,并 swap(ai,aai)\operatorname{swap}(a_i,a_{a_i})。求能通过进行任意次这种操作得到的不同序列数。

n106n\le 10^6

阅读全文 »

AGC061C First Come First Serve 做题记录

nn 个人来过,第 ii 个人在 aia_i 时刻来在 bib_i 时刻走,每个人可以在来时或走时登记,问可能的登记顺序有多少种。

n5×105n\leqslant 5\times 10^5ai,bia_i,b_i 互不相同,i<n,ai<ai+1,bi<bi+1\forall i<n,a_i<a_{i+1},b_{i}<b_{i+1}

阅读全文 »