Processing math: 100%

2019 BUAA Spring Training 13 题解

Solved A B C D E F G H I J
10/10 O O O Ø Ø Ø O Ø O Ø
  • O for passing during the contest
  • Ø for passing after the contest
  • ! for attempted but failed
  • · for having not attempted yet

比赛链接

A Kattis - As Easy as CAB

题目描述

给定一系列按照某种字典序排好的字符串,求字典序。

解题思路

那就按照从小到大连边,找出这个图集的拓扑序,如果有环则拓扑序长度与给定长度不等,输出IMPOSSIBLE;否则一定能够找到一种方法,如果刚开始的入度为零的点为一是一条链那么就输出拓扑序,否则输出AMBIGUOUS。

AC代码

点击

B Kattis - Falling Apples

题目描述

模拟重力掉落苹果。

解题思路

暴力模拟就行了。

AC代码

点击

C Kattis - Square Deal

题目描述

给三个矩形,问能不能够把他们无缝拼成一个正方形。

解题思路

首先必然有,三个矩形中最长的边的长度为正方形长度。

求出面积和即可求出边长,进而分两类讨论剩下两个如何拼即可。

AC代码

点击

D Kattis - Buggy Robot

题目描述

给一张有障碍的图,上面有起点和终点。给定一段走路方向序列,要求用最少次数修改这个序列使得能够从起点走到终点。修改的方法有两种:删除一个、插入一个。走到终点后的所有序列会自动忽略。

解题思路

dp[i][x][y]表示用序列前i项、走到(x,y)所需要最少修改次数。存状态宽搜即可。

AC代码

点击

E Kattis - Construction Toy

题目描述

给小于9个线段,要拼成一堆边邻三角形,其中一条边为基线,问离这条线最远的点有多远。

解题思路

暴力枚举,每次枚举到哪条边上加边,保存边的使用与否,可以获得TLE(10/15)

TLE代码

点击

其实这样会引起很多重复,我们只需要每次在新扩展出的边上进行DFS即可,可以获得AC

AC代码

点击

F Kattis - Around and Around We Go

题目描述

按照节拍对齐两个声部并输出。

解题思路

分拍模拟即可,但不知道为什么会WA。

迫 真 码 农 题

AC代码

点击

G Kattis - The Calculus of Ada

题目描述

给一个数组,问多少次差分之后能把它们全变为相同的数,并预测数列的下一项。

解题思路

搞个矩阵模拟一下就好了。

AC代码

点击

H Kattis - Ghostbusters 2

题目描述

平面上有一些放着武器的点,武器可以水平或竖直放置,武器的攻击范围为两侧对称的一定长度,问不互相打到最大的攻击范围是多少。

解题思路

二分答案,一个武器水平或竖直放置是一个0/1问题,用2sat解决。

AC代码

点击

I Kattis - Postal Delivery

题目描述

一个邮递员要从原点向数轴上某些点投一定量的邮件,每次装车件数有限制。求最短总路程。

解题思路

贪心就行了,分正负两部分解决即可。

AC代码

点击

J Kattis - Windy Path

题目描述

给定平面上的一些点,找出一个不自交的路径序列保证符合给定的转弯顺序。保证没有三点共线。

解题思路

先找到左下角的点(保证在边界),当下一个要转向右时,找到相对最左的那个点(与上一个形成的线段之间的夹角最小),否则找最右那个点。这个构造方法保证了每一次能够使得下一次无论选择哪个点都是正确的转向,同时选择斜率最大保证了不自交。

AC代码

点击
Powered By Valine
v1.5.2