The Hangzhou Normal U Qualification Trials for ZJPSC 2021

The Hangzhou Normal U Qualification Trials for ZJPSC 2021](https://codeforces.cc/gym/322466)

A. Array Permutation:

题意:让你构造一个长度为n的数列,当前长度为m,每次随机一个\([1,n-m]\)的数x,然后生成一个\([1,n]\)的全排列,问这个数列有多少种构造方法。

  • 画出所有的排列,猜想答案为\(2^{n-1}\).
C. Circle Minimal

题意:给你n个点,n条边,你可以调整一条边,但要保证图连通,问整个图构成的最小环。

考虑要使整个图连通,移动的边必然在环上。那么把这个图拓扑排序一下,找出环上所有的边。

  • 考虑一个环的三条边。

  • 枚举图中所有点,枚举他的两个出边。

  • 两条树边:找环上最小的边拼成一个环。

  • 一条树边+一条环边:维护环上的边set,找最小的不是这个环边的环边拼成一个环。

  • 两条环边:维护环上的边set,找最小的不是这两个环边的环边拼成一个环。

  • 但是要枚举这个环的4个出边,保证以上三种情况都枚举到,因为一个点最多两条环边

  • 自定义set写错了,wa了若干发

G. Guess Strings

题意:给你一个长度\([2,100]\)的字符串,由两种字符构成,每次可以问一下某字符串是不是这个字符串的子串。问你最后的字符串。询问小于\(200\)次。

  • 不妨先问26次,问出两个字母。

  • 先问一下ab和ba出现了那个。

  • 然后向前一直查他的前缀,问一下aab,bab有没有,若都没有则前缀结束,反过来查后缀。

  • 但直接尝试复杂度\(O(2n+26)\),貌似不行。

  • 每次查前后缀,随机定查a还是b,期望的复杂度是\(O(\frac{3}{2}n+26)\),这样便小于200了?

H. Hsueh- And Treasure

题意:第\(i\)次走\(i\)步,每次向上下左右,问到\((x,y)\)最少需要多少步

  • 直接二分出一个最小步数。

  • 若差值为偶数,通过向上向下可以调整,否则一直加到差值为偶数。

  • 然后贪心拼坐标,当当前要走的步数为奇数,向前拼1,否则拼y。

I. Iaom and Chicken feet

题意:

image-20210405141230465

问一个图有多少个这个鸡脚。

  • 把2点拎起来,枚举四号点,答案就是\(\Sigma C_{size2-1}^2 C_{size4-1}^3\)
J. Jew Sorting

题意:一个序列,每次删除前半段或后半段,问最少需要操作的次数,使得序列递增。

  • 线段树维护区间是否单增,pushup的时候合并一下。然后查一个最大的区间,就是答案。
posted @ 2021-04-05 14:22  无声-黑白  阅读(218)  评论(0编辑  收藏  举报