HNUCM 2020年春季ACM集训队热身赛-第2场总结
文章目录HNUCM 2020年春季ACM集训队热身赛-第2场总结前言A:河畔军训B:不高兴的津津C:花生采摘D:FBI树E:火星人F:小B旅游G:括号匹配H:报数游戏I:小A的烦恼J:一步之遥
前言
不会写题解,只爱写总结(hhh)
感觉这套题整体还可以,没啥难题,但是又都有点意思,蒟蒻的我很多题都不是一发才过,还是太急了点,没怎么检查,立马就交了
A:河畔军训
比赛延长了一个小时,还是没做出来。。。
看题目就知道是三向bfs,但是奈何我的bfs太过于暴力,赛后看晖晖大佬的代码才A过
需要注意的是:
1、小h能走八个方向;小z和小y只能走四个方向
2、小h一秒最多能走3步;小z和小y一秒最多只能走1步
#include
#include
#include
#include
#include
#include
#include
#include
#include
B:不高兴的津津
不光是津津不高兴了,我也不高兴了。这题输入居然是字符串,我也是醉了,搞的wa了三发
重点注意下这个即可,然后可能还有一个地方就是如果不高兴程度相同,则选择前面的
#include
#include
#include
#include
#include
#include
#include
#include
C:花生采摘
虽然题目有点长,但是不难发现其实就是贪心的思想,我们用一结构体存花生的坐标和值;然后对值从大到小排序;然后再找。
需要注意的是:当选择对排序后的下一堆花生采摘时,需要考虑:采摘完之后能否回到道路
#include
#include
#include
#include
#include
#include
#include
#include
D:FBI树
很明显的建树,遍历树,但是如果按照传统的建树之后再遍历似乎显得有点麻烦,而且没有必要;本来建树和遍历的过程就是递归的过程,那我们为何不用递归的思想直接求呢
#include
#include
#include
#include
#include
#include
#include
#include
E:火星人
全排列问题,但是需要注意的是:当得到结果后,需要结束全排列,不然肯定会超时。
有两种方法:
1、C++全排列函数,有时候比赛中,为了节省时间,这何尝不是一种好方法
2、递归,也很简单
C++全排列函数版本
#include
#include
#include
#include
#include
#include
#include
#include
F:小B旅游
这题可能题意会有点小难理解,它是求将多种方案能经过的城市去重求和
可能还是比较容易想到用BFS,但是发现城市数很大,不能用链接矩阵存,那我们就用邻接链表吧,链表可能比较麻烦,于是我们就用数组模拟链表:链式向前星存图
链式向前星(数组模拟邻接表)
#include
#include
#include
#include
#include
#include
#include
#include
#include
G:括号匹配
还是很容易想到栈应用的,我们可以开三个栈,分别存{、[、(、
#include
#include
#include
#include
#include
#include
#include
#include
H:报数游戏
约瑟夫环,数据比较弱,我们用模拟完全可以过,但是也可以找下小规律
模拟法:
#include
#include
#include
#include
#include
#include
#include
#include
找规律,直接得答案(一个学弟想出来的):
#include
using namespace std;
int main()
{
int t,n,m;
cin>>t;
while(t--)
{
cin>>n>>m;
int num=1,ans=0,len=n;
while(num!=m)
{
int w=num;
ans+=(len+num-1)/m;
num=(len+num-1)%m+1;
len-=(len+w-1)/m;
}
cout<<ans<<endl;
}
}
I:小A的烦恼
和F题很像,也是数比较大,我们只能用链式向前星存图,然后这里是求每个城市与其相邻的城市,按照输入顺序输出;我们只要在创建图的时候,同时开个数组存下每个城市相邻的城市即可,具体见代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
J:一步之遥
这题就有点离谱,我用了个set,然后这题就特别水了
#include
#include
#include
#include
#include
#include
#include
#include
作者:algorithmLB
acm