25_03_27 & 蓝桥杯题单分类:搜索与查找
-
1.方格分割
https://www.lanqiao.cn/problems/644/learning/?page=1&first_category_id=1&second_category_id=3&name=方格分割
将边框节点视为图
?6...
-
3.全球变暖
https://www.lanqiao.cn/problems/178/learning/?page=1&first_category_id=1&second_category_id=3&name=全球变暖
vector用assign()而不是重新初始化来重新赋值
看题要求,岛屿还是陆地! -
4.迷宫
https://www.lanqiao.cn/problems/602/learning/?page=1&first_category_id=1&second_category_id=3&name=迷宫
:(´ཀ`」 ∠): 不是哥们给我做吐了
我知道最小路径要用BFS,但是为什么要求字典序最小呢?我还以为要用BFS找出全部可能结果的最小值,
BFS怎么可能在找到结果后把它存储在合适的位置呢?
就算是找到,又怎么找到按字典序求最小呢?
想到这里我头就大的
BFS()不会遍历全部可达路径,BFS()只会找到最短路径最优解
没想到按照字典序建立方向就可以让路径按字典序进行排序
但是存储路径确实用了比较特殊的方法:typedef struct{x,y,path})node;
-
5.九宫幻方
https://www.lanqiao.cn/problems/100/learning/?page=1&first_category_id=1&second_category_id=3&name=九宫幻方
和解数独好像,就是用二维回溯做,找到的第一个答案记录下来 -
6.穿越雷区
https://www.lanqiao.cn/problems/141/learning/?page=1&first_category_id=1&second_category_id=3&name=穿越雷区
size的获取在pop前,for size 也在 pop前:
把你挂墙上去
while (!que.empty())
{
int size = que.size();
for (int j = 0; j < size; j++)
{
pair<int, int> cur = que.front();
que.pop();
visited[cur.first][cur.second] = true;
for (int i = 0; i < 4; i++)
{
int nx = cur.first + dir[i][0];
int ny = cur.second + dir[i][1];
-
8.迷宫与陷阱
https://www.lanqiao.cn/problems/229/learning/?page=1&first_category_id=1&second_category_id=3&name=迷宫与陷阱
如何在获取无敌道具后回溯路线?
初次尝试:过了两个测试点,栈炸了 -
9.6123
https://www.acwing.com/problem/content/description/6126/
? -
11.玩具蛇
https://www.lanqiao.cn/problems/1022/learning/?page=1&first_category_id=1&second_category_id=3&name=玩具蛇
对起点回溯 -
12.分巧克力
https://www.lanqiao.cn/problems/99/learning/?page=1&first_category_id=1&second_category_id=3&name=分巧克力
()()
做数学除法题变量名要用double类型
耻辱墙
bool check(){
int a = nums[0];
int b = nums[1];
int c = nums[2];
int d = nums[3];
int e = nums[4];
int f = nums[5];
int g = nums[6];
int h = nums[7];
int i = nums[8];
return (a + b/c + (f + 10 *e + 100 * d)/(i + 10 * h + 100 * g)) == 10;
}
-
16.马的遍历
https://www.luogu.com.cn/problem/P1443
马走日 -
17.大臣的旅费
https://www.lanqiao.cn/problems/207/learning/?page=1&first_category_id=1&second_category_id=3&name=大臣的旅费
带权图最短路径:dijkstra算法
最长路径(树直径):双dfs -
18.回文数
https://www.luogu.com.cn/problem/P1015
:(´ཀ`」 ∠):
stol(str,nulptr,n进制);处理常规输入还差不多,用来处理100位的n进制数就太不可取了,这样的话只能模仿Java里的bigdouble类,用数组存储每一位数,然后相加,注意用的是字符数组应对十六进制,但实际上存储的还是数值(确实会对应某些char字符但是不要紧,用字符数组在reverse的时候比较方便).
每组相加,进位,为防止溢出要提前后插一个0。
(手动模拟有些难受)

浙公网安备 33010602011771号