算法竞赛入门经典第六章习题(14/14)
习题, 第六章的最后部分了
我能去学暴力了!
学完暴力就能学竞赛篇了!幸福!
Parentheses Balance
题解:给你一堆括号序列,问你能否达成括号匹配
题解:可能有空行,注意, 用栈进行模拟
1 |
|
S-Trees
题意: 给你n个变量,组成n层二叉树, 给出n+1层节点的值, 再来q个询问, 每个询问给每个变量一个值, 每个节点取0时向左走,取1时向右走,问你q的询问后的答案
题解: 直接模拟,对每个询问,每次下一层节点范围减半,记录叶子节点答案即可
1 |
|
Tree Recovery
题意:让你根据先序遍历和中序遍历输出后序遍历的结果
题解: 直接模拟建立输出
1 |
|
Knight Moves
题意:给你一个起点一个终点, 问你国际象棋中的骑士要走几步才能从起点走到终点
题解:直接bfs搜最短路
1 |
|
Patrol Robot
题意:给你一个n * m 的图,且你能飞过k长度的障碍, 问你能否从左上角到右下角
题解:一开始看着自然会想用三维标记到节点剩余步数的所有状态,直接bfs, 也可以用二位记录到节点的剩余步数,只有多于这个步数才进行搜索并更新
1 |
|
Equilibrium Mobile
题意: 给你一个深度不超过16的天平,问你至少要修改多少个秤砣的重量才能使得天平平衡
题解:如果不修改一个节点,那么天平的质量就是定的,记录不修改每个节点天平的重量,取其中节点最多的那种。 会爆int, 得用longlong
1 |
|
Petri Net Simulation
题意: 让你模拟petri网的变迁,
题解:具体描述参考原题面, 直接模拟即可,最后输出结束或死后每个有taken的地方,和有多少个taken
1 |
|
Spatial Structures
题意: 让你把一张图像的四分树表示和点阵表示相互转换
题解: 按题意模拟即可,注意输出数字时每十二个一行,和全为1时的处理
1 |
|
"Accordian" Patience
题意:给你52张牌, 让你按题目所述规则进行模拟合并牌堆, 并输出牌堆的牌的数量
题解:按题意模拟, 注意末尾pile的单复数问题
1 |
|
10-20-30
题意: 给你52张牌,每次依次往七个牌堆上放牌, 牌堆没牌就消失了, 让你按
- the first two and last one,
- the first one and the last two, or
- the last three cards.
加起来能等于10, 20, 30就按顺序收入手牌底的规则进行模拟,如果没手牌就输了,没牌堆了就赢了, 陷入循环就陷入恋爱循环了
题解:按题意模拟, 对状态进行编码,以便检查是否陷入循环
1 |
|
Tree Reconstruction
题意:让你根据bfs序和dfs序,保证遍历时有更小的节点可走时走更小的节点
题解:按dsf序为主进行递归便利,用dfs序来检测是否为同一层的节点
1 |
|
A Dicey Problem
题意:把一个頭子放在起点,问你他能否滚回来,能的话输出路径,否则输出无方案, 一个頭子能滚到一个格子当且仅当他的头顶(是头顶!)和那个格子的数一样或者格子上显示的-1
题意:读好条件, 直接模拟, 这里用链表存了下路径,直接存也行
1 |
|
Spreadsheet Calculator
题意:给你一个n×m的excel表格,让你计算出每个格子的值,如果计算不出来(公式调用了未定义的值), 则只需输出所有无法计算的公式格子
题解:直接模拟, 注意递归判值,如果调用了一个正在计算过程中的格子,则无法计算, 照常,注意输出和最后一个样列后面也得有空行,这次题面提出来了
1 |
|
Inspector's Dilemma
题意: 给你有v个点的完全图, 和e条必须经过的边,和每条边长多少。起点和终点随意, 问你走完这e条边的花费是多少
题解: 这e条边一定会形成m个联通块,要走完这些边,必定要经历所有的联通图, 所以这些块间都得加上一条边。 对每个联通块来说, 最优就是每条边都得走一次, 那么就是一个欧拉道路或回路, 如果不是, 那么我们通过加边来使这个块变成欧拉道路。 那么,我们只需要找出m个联通块, 然后 , 在每个联通块里看他是不是欧拉道路或回路, 如果不是,那么我们加一条边, 就能消除两个奇点。
1 |
|
😆第六章!完了!暴力!我要学暴力!