UESTC 2017 Summer Training #11~15补题

UESTC 2017 Summer Training #11 Div.1

E \(AC\)自动机+\(dp\)

  • 比较常规的\(AC\)自动机计数。加了几个限制条件。首先必须包含一个大写字母一个小写字母一个数字,这个条件可以用状压表现在状态中。然后有些数字可以当作字母,在转移中直接当作字母处理即可。
  • 在转移中:大写字母当作小写字母转移,小写字母正常转移,\(0\)\(1\)\(3\)\(5\)\(7\)转移成小写字母,至于\(2\)\(4\)\(6\)\(8\)\(9\)因为在\(AC\)自动机里没法匹配(只有小写字母),所以直接都转移到\(0\)节点上。

H 一般\(dfs\)+记忆化搜索

  • 题目给了提示,既是求\(x_1+x_2+...+x_D=H-1\)的解\(\varphi_i\),然后求这些解对应的\(pascal\)值。
  • 求值中用了记忆化,而且题目又提醒你一个解\(\varphi_i\)的不同排列的\(pascal\)值是相同的,故搜索的时候排序后再搜索。

UESTC 2017 Summer Training #12 Div.1

B(暂时不用补)0

D(暂时不用补)1

E 数论题,首先\((0,1,k)\)是满足题中等式的,其次,可以发现如果\((a,b,c)\)是一组满足条件的解的话,那么 \((k*(a+b)-a,b,c)\)也满足条件。那么可以从\((0,1,k)\) bfs 求得其他解,而出现过的数则存入set中。

[Megumin的代码] (代码什么的,当然是不存在的呀

H 图论

G(暂时不用补)0

I(暂时不用补)0

J

L(暂时不用补)1

UESTC 2017 Summer Training #13 Div.1

E 贪心,首先,我们应优先选择结束时间早的节目,那么先对节目按结束时间升序排序,其次,当我们要放入一个节目时,应贪心选取比这个节目开始时间早的,且结束时间最迟的节目进行替代。

[Megumin的代码] (代码什么的,当然是不存在的呀)

H DP(暂时不用补)1

I 数学(暂时不用补)0

J Trie | DP

UESTC 2017 Summer Training #14 Div.1

I题 随机化算法 本题肯定有解,解的数量很多,传统的寻找方法复杂度会很高,因而考虑随机化

WQF代码

UESTC 2017 Summer Training #15 Div.1

A 二分+dfs

B (暂时不用补)0

C 字符串\(KMP\)

  • 一道利用\(KMP\)原理的题。其中为了快速得到出现的个数可以开个数组递推,否则T。
  • 一个坑点是会重复加入一样的字符串到集合里,用\(vis[]\)数组判断即可。

E (暂时不用补)1

J 模拟+想法

K 字符串\(hash\)

  • 枚举第二个字符串的分割点,对这三个字符串计算\(hash\)值。怎样判断能组成第一个字符串呢?注意到只分成了三个字符串,那么我们可以枚举三个字符串的组合顺序!!!对每种顺序计算第一个字符串的三个\(hash\)值,再与第二个字符串的\(hash\)值比较。
  • 有一步思想转换:很难对第一个字符串再做操作=>枚举第二个字符串的三个分解字符串的组合顺序。

posted on 2017-07-21 17:28  ACGO  阅读(168)  评论(0编辑  收藏  举报

导航