A.一千万零一只斑点狗

我讨厌freopen!!!

不是,谁家好人收养一千万零一只狗啊

说回正题,这题我们可以进制转换的思想来做,把10进制转换成26进制,不过要注意的是这题的映射为

0-a

1-b

2-c

...

25-z

所以说这题我们的映射要偏移一位

B.金字塔

这题没想到正解,想拿暴力分结果暴力的好几层for循环写的我怀疑人生了,最后也是去想别的题去了。

这题我们可以在已知信息中找出最大的H,然后再从1到100暴力枚举x和y,再然后从2到n判断从中心点推出来的h和h[i]是否相等,如果相等,则继续,否则去寻找下一组x,y

C.走迷宫

我不喜欢走迷宫!!!

被BFS卡死的一道题,一开始那DFS做的发现TLE了,后面也就去想别的题了。

本人卡的最久的一道题。(其实非常简单,但是我不会BFS)。

用BFS暴力枚举每一个起点和终点。最后再在每一条路径中找最长的一条路。

D.划分问题

开始没有想到正解,就拿了暴力分。

其实就是一道数学题。

排序后直接输出中间两个数的差即可

E.序列查询

以后一定要好好学习STL,当时想到了set,但是没有想到也忘记了multieset。

这题要用STL的multieset 先来说一下multieset的几个函数:

声明: multiset<类型> s;
插入: s.intsert(x);
删除所有x: s.erase(x);
删除一个x:s.erase(s.find(x));
返回≥x的第一个数:s.low_bound(x);
返回>x的第一个数:s.upper_bound(x);
第一个数:s.begin();
最后一个数:s.end();

我们只要来判断一下我们要干什么就行了。

1:将x加入s。

2:循环判断第k个≤x的数,如果到了边界则输出-1。

3:循环判断第k个≥x的数,如果到了边界则输出-1。