搜索
CoderCat.
大
展开
-
洛谷P1602_bfs+同余定理
求每位由0,1,2,...,K-1组成的能被M整除的最小的数***********************************************************由同余定理知,+和*运算,在中途取余对结果没有影响,所以,边计算边取余,直到一个数能被M整除因此,数的范围都是<M的,再用一个vector队列同步保存算得的值***********************************************************原创 2018-05-08 21:16:52 · 286 阅读 · 1 评论 -
hdu4848 dfs+剪枝
题意:给定n个星球(编号1~n, n<=30),和从每个星球到达每个星球的时间,再给定到达每个星球的截止时间。从星球1出发,遍历2~n个星球,求每个星球的到达时间的总和。PS:每个星球可能不止经过一次!!!dis[i][j]:i到j的最短距离,由floyd预处理 time[i]:到达i星球的时间,初始化-1。ans = sigma(time[i]) (2<=i<=n) 剪...原创 2018-08-18 11:59:44 · 141 阅读 · 0 评论 -
hdu5025 bfs迷宫找最短路径 模范题
题目大意:给定n*n的网络,起点K,终点T,S表示蛇(最多5条,且经过S时,若蛇是活的则时间+1),数字代表钥匙编号(最多m把且必须按照顺序取),每次移动时间+1,求集齐所有钥匙到达终点的最短时间bfs迷宫搜索。 vis记录状态:行,列,蛇是否存活,钥匙的集齐情况。每个状态只被入队一次。#include <cstdio>#include <queue>#i...原创 2018-08-15 22:19:04 · 244 阅读 · 0 评论 -
poj3279_VJkuangbin01_Fliptile
题目大意:在n * m的01矩阵中,反转(i, j),则(i-1, j), (i+1, j), (i, j-1), (i, j+1)也同时反转,即0变为1,1变为0,问是否可以将该01矩阵通过有限次的反转变为0矩阵,若存在则输出最小反转次数的反转矩阵(1表示该位置发生反转,0表示没有),反之输出IMPOSSIBE题解: (1) 同一个位置反转奇数次的效果和反转1次相同,反转偶数次和反转0次效...原创 2018-05-29 23:15:44 · 154 阅读 · 0 评论 -
poj1321_VJkuangbin01_八皇后变式
题目大意:第一行输入n(<=8), k(<=n)。在输入n*n的棋盘,其中#表示可以下棋,.表示不能下棋,其中排放的任意两个棋子不能在同一行或者同一列,求排放k个棋子的方案数dfs形参为枚举的行号 for循环枚举列号 八皇后是八行排八个,而该题的k<=n,所以应该在for循环外加一句dfs(prow+1),即跳过prow行,继续搜索prow+1行#include ...原创 2018-05-27 22:50:08 · 200 阅读 · 0 评论 -
【模板】洛谷P2622_状态压缩+bfs_关灯问题_
该题数据较小,想到状态压缩 不可能则输出-1,想到bfs队空后的输出状态 每个状态都是由上个状态到达的#include <cstdio>#include <queue>#include <cstring>using namespace std;int n, m, a[111][11];bool vis[1<<11];typed...原创 2018-05-10 23:10:52 · 337 阅读 · 0 评论 -
洛谷P1363_迷宫dfs搜索的船新版本
以前用迷宫dfs搜索的形参都是m(m = row * 列数 + col),然后依次搜索*****************************弱************蒟蒻****************************************船新版本:(1)形参就是行号和列号(2)vis[x][y][0]记录该点的访问值的row,vis[x][y][1]记录该点访问值的原创 2018-05-09 17:51:22 · 319 阅读 · 0 评论 -
洛谷P1379_八数码游戏
#include#include#include#include using namespace std;queue q1;//记录状态map step;//记录步数int dr[4] = {0, 1, 0, -1};int dc[4] = {-1, 0, 1, 0};int bfs();bool canmoveto(int u, int dir);int mo原创 2018-05-08 22:30:45 · 315 阅读 · 0 评论 -
洛谷P1784_数独游戏
#include #include using namespace std;int a[9][9];int dfs(int m);bool canplace(int row, int col, int num);void output();int main(){ int i, j; for(i = 0; i < 9; i ++) for(j = 0; j < 9;原创 2018-05-08 21:56:33 · 501 阅读 · 0 评论 -
CCF 201803-4 棋局评估 极大极小搜索
题意:3X3的井字棋,1先走,2后走,给定一个状态。当前轮到1走,1,2都按照最优策略行棋,求最后的分数。#include <cstdio>#include <algorithm>using namespace std;const int INF = 100;int a[10];int check(){ int cnt = 0; for(...原创 2018-09-07 20:20:21 · 358 阅读 · 0 评论