UVa 10602 - Editor Nottoobad
链接
大意
给出一些单词,第一个必须手动输入,后面的有两种方式可以语音辅助输入:
- 重复上个输入的单词
- 删除最后一个字符
输出最少的手动输入按键次数,和单词输入顺序。
思路
尽量多的利用辅助减少按键的次数,每次都优先输出与上一个输出单词的lcp长度最长的单词,以最大限度地利用辅助。
代码
1 | #include <cstdio> |
给出一些单词,第一个必须手动输入,后面的有两种方式可以语音辅助输入:
输出最少的手动输入按键次数,和单词输入顺序。
尽量多的利用辅助减少按键的次数,每次都优先输出与上一个输出单词的lcp长度最长的单词,以最大限度地利用辅助。
1 | #include <cstdio> |
定义长度为
枚举长度进行验证,注意以下几点:
1 | #include <cstdio> |
给出
每次都走奇数步,根据奇偶性,可知,不会走到与当前格子在同一斜线上的格子,然后删除最左上的一条斜线上的所有纸片。
1 | #include <cstdio> |
给出
计算蛋糕的体积并排序,然后目标转化为求上升子序列和的最大值。得到状态转移方程
1 | #include <cstdio> |
给出一段长度为
定义状态
1 | #include <cstdio> |
给出
可以将推的次数和走动次数转化为一个权值,将人的位置和箱子的位置作为状态,进行bfs,记录每个状态到达的最小权值。
1 | #include <cstdio> |
手机蜂窝数据可以得到手机在
要使查询次数最小,应该优先查找存在概率高的地点,先对位置排序。然后设状态
1 | #include <cstdio> |
给出一个字符串,输出它的最长回文子串。
将原字符串反转后求LCS,保留字典序最小的LCS。由求出的LCS字典序最小,因而无法保证回文,比如:
1 | #include <cstdio> |
给出数列
求两边LIS,枚举每个点的上升前缀
1 | #include <cstdio> |
给出
枚举所有星球间的边,从小到大排序,依次将边加入。注意加边时要将同长度的边一起加入。
1 | #include <cstdio> |