本次实验(2周)要求:
1. LR(k)文法包括LR(0)/SLR(1)/LR(1)/LALR(1); 理解四种LR文法定义,利用编译工作台程序求出对应的LR分析表,判断文法是否是对应的文法,能用C++/Java实现移进-归约分析器实现自底向上分析。
2. 掌握Java的字符串处理技术和对应的集合框架(C++对应为string和stl库),熟练使用Java集合组件
3. 算法知识:最长回文子串(中心扩展的马拉车算法、最长公共子序列LCS), 矩阵快速幂来实现递推
4. 了解经典游戏的算法设计(这里主要是21点贪心模拟和24点游戏的深度优先搜索DFS)
| Problem ID | Title | 分类 | AC | Submit | 正确率 | |
| Problem A | 算术表达式 | 字符串递归下降编译原理文法检测 | 128 | 244 | ||
| Problem B | LR(0)分析方法 | 编译原理 | 101 | 483 | ||
| Problem C | SLR(1)分析 | 编译原理 | 99 | 291 | ||
| Problem D | 决战21点 | 字符串博弈贪心 | 117 | 188 | ||
| Problem E | 487-3279 | 字符串排序 | 104 | 213 | ||
| Problem F | 密码截获 | 字符串 | 116 | 130 | ||
| Problem G | Fibonacci数列(二) | 二分矩阵快速幂数论 | 114 | 134 | ||
| Problem H | 速算24点 | 树搜索编译原理 | 115 | 142 |