
DFS
kuricip
如果你瞄准月亮,即便迷失,也是在星辰之间
展开
-
Find The Multiple(DFS)
Find The Multiple 题目传送门 Find The Multiple 题目大意 给你一个不超过200的数n 求一个数m,m为n的不为0的倍数且不超过200位 思路 DFS,走∗10*10∗10和∗10+1*10+1∗10+1两条路,在long long内有解 AC Code #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespa原创 2020-09-03 13:40:14 · 132 阅读 · 0 评论 -
Fliptile(枚举&DFS)
Fliptile 题目传送门 Fliptile 题目大意 给你一个n×mn×mn×m的矩阵,矩阵由0和1组成,可以选择一个点翻转 翻转:将该点以及该点上下左右的点翻转(0变1,1变0) 求将矩阵翻转成全为0的最小步数,若没有则输出“IMPOSSIBLE” 思路 很经典的题目了,可以从第二行开始推,用第二行的翻转将第一行全变成0,同理,第三行变第二行为全0… 到最后一行时,判断该行是否为0,全为0即为这种方法可以。 对于第一行的状态可以直接枚举,枚举第一行翻转的情况(采取二进制的枚举方式),对于每次枚举的答案原创 2020-09-02 22:12:01 · 941 阅读 · 0 评论 -
棋盘问题(简单dfs)
棋盘问题 题目传送门 棋盘问题 题目大意 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 思路 直接开一个数组记录访问每行时,被访问过的列 然后dfs每行即可,记得在最后加一个dfs(h+1),避免某行全不满足check后无法进入下一行的问题 AC Code #include<cstdio> #include<algorithm>原创 2020-08-30 20:20:03 · 224 阅读 · 0 评论 -
Tokitsukaze and Rescue(DFS、最短路)
Tokitsukaze and Rescue 题目传送门 Tokitsukaze and Rescue 题意 一张完全图(双向边),删去k条边后,让新图的最短路的路径长度尽可能大 思路 先用dijkstra跑出最短路,删边肯定从这里面删的,然后枚举删除的边,再用递归求子问题(删k-1条边),ans存更新的答案 对于删边,可以采取开一个二维数组记录,也可以将删除的边记录为INF,记得回溯 代码 #include<cstdio> #include<iostream> #inclu原创 2020-07-31 00:21:17 · 325 阅读 · 0 评论