昨天(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出这道题。