昨天(12.22)打了一场吉首大学的网络赛,本来是奔着rank40的U盘去的,结果只有rank80,这样的结果肯定是有问题的,经过一夜的反思,下面总结一下错误。
1.首先是第一题,也是最不应该的,就 还 还 还是审题,下面先上原题:传送门
这道题其实很简单,只要遍历一遍即可。
但是在打比赛的时候,我看到了题目里的第一场、先到、向上下左右等字眼,第一反应就是BFS,而且还写了很久很久,其中也暴露出一些问题,而且最后并没写出来。当然这都是后话了。
这次主要的反思还是审题,还有思维不能太僵。明白题意后,个人觉得和扫雷十分类似,刚才早上一发就过了,贴代码:
#include <algorithm>
#include <iostream>
#include <math.h>
#include <queue>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
using namespace std;
char mp[105][105];
int main()
{
int n, m;
while (cin >> n >> m)
{
memset(mp, '\0', sizeof(mp));
int flag = 0;
for (int i = 1; i <= n; i++)
scanf("%s", mp[i] + 1);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (mp[i][j] == '*')
{
int sum = 0;
if (mp[i][j - 1] == '#')
sum++;
if (mp[i - 1][j] == '#')
sum++;
if (mp[i + 1][j] == '#')
sum++;
if (mp[i][j + 1] == '#')
sum++;
if (sum >= 2)
{
flag = 1; printf("%d %d\n", i, j);
}
}
if(flag==0)
printf("-1\n");
}
return 0;
}
2.这是第二点,更多的是知识漏洞,毕竟ACM就是电子竞技,菜是原罪。先上原题:传送门
这道题在我的比赛的时候,当时一眼就是
二分,当然学长之前也有教过二分,其实高中也有接触,但是由于在大学没有真正意义上的实践过二分,只不过是最基本的二分找数二分算法,也没有刷过二分题,因此并不敢写。然后就用了另一种较暴力的方法,然后就是
很遗( 正 正 正)憾( 常 常 常),这道题也是一直到最后也没有写出来。
除此之外,还有另一道“一眼”题:
先上题:传送门
//强调一下,并查集能写!!!——2020.1.5题解传送门
这道题当时是“一眼”就是并查集,~~然而赛后学长告诉我并不是并查集。~~但是,是不是并查集不要紧,毕竟在比赛时,我一直认为这是并查集,并查集我们还没接触,我是之前一次牛客的比赛中遇到的,因为没写出来,然后稍微了解了一下并查集,说实话并查集和二分一样,我只知道有这么一种东西,并没有一次尝试。所以毫不奇怪,没有A出这道题。