赛前复习

输入

1.printf("%s",s) 是从第0列开始的
2.scanf("%c",&map[i][j]) 小心行末换行符
3.scanf("%[^\n]",str) 将一整行串连同空格一起输入

输出

1.字符输出题注意输出空格的情况
2.自带提示语的,复制粘贴
3.要求数字之间空格隔开的,注意行末是否需要留空格
4.“%5d" 数字左边空出4格

BFS

#include <queue>
using namespace std;
queue<int> q;
void bfs(int start)
{
	if(符合条件) return;
	q.push(start);
	while(!q.empty())
	{
		int x=q.front();
		q.pop();
		for(){
			int nxt=;
			if(nxt没有访问过){
				q.push(nxt);
				标记访问;
				操作;
				if(符合条件) return;
			}
		}
	}
}
		

DFS

1.只有函数括号里的参数才会随着return一起撤销,其他需要手动撤销

void dfs( )
{
	if(到达终点){
		操作;
		return;
	}
	if(越界){return;}
	if(剪枝){return;}
	for(){
		if(扩展状态合法){
			操作;
			标记;
			dfs();
			标记撤销;
			操作撤销;
		}
	}
}

其他

1.不要在调用函数的时候写solve(i++),要写solve(i+1)
2.时刻检查某些减法操作会不会导致数组越界

发布了28 篇原创文章 · 获赞 0 · 访问量 667

猜你喜欢

转载自blog.csdn.net/weixin_45561591/article/details/103434132