POJ - 1321 - 棋盘问题 【DFS】

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。  每组数据的第一行是两个正整数,n k,用一个空格隔开,...

2018-08-10 15:05:48

阅读数:20

评论数:0

POJ - 3126 - Prime Path 【BFS + 素数打表】

题意:给你两个四位数的素数,让你从第一个素数变成第二个,每次操作只能改动一位数字,且需要保证改动后的数字任为为素数;输出需要操作多少次;  题解:先素数打表,BFS处理时将满足条件的数字放入队列中(未被访问过且为素数,与队列front()的元数只有一位数字不同); #include&...

2018-08-08 10:24:22

阅读数:28

评论数:0

POJ-3278 - Catch That Cow【BFS】

题意: John要去抓奶牛,奶牛不会移动,John移动的方式有三种: 向前移动一步,耗时一分钟; 向后移动一步,耗时一分钟; 向前移动当前所处的位置的2倍,耗时一分钟; 题解:1. if(N >= k),当John所处的位置大于奶牛的, John 只能向后一步一步移动,...

2018-08-06 11:56:36

阅读数:16

评论数:0

搜索剪枝

what's 剪枝? 常用的搜索有Dfs和Bfs。 Bfs的剪枝通常就是判重,因为一般Bfs寻找的是步数最少,重复的话必定不会在之前的情况前产生最优解。 深搜,它的进程近似一颗树(通常叫Dfs树)。 而剪枝就是一种生动的比喻:把不会产生答案的,或不必要的枝条“剪掉”。 剪枝的关键就在于剪...

2018-08-06 10:59:16

阅读数:271

评论数:0

HDU - 2612 - Find a way 【BFS】

题意: 输出Y和M 到图中 ‘@’的最小步数之和 题解: 用三维数组分别储存Y 和 M 到 图中的每一点的步数,输出最小的步数和; #include<iostream> #include<cstdio> ...

2018-08-06 09:53:58

阅读数:17

评论数:0

POJ - 3984 -迷宫问题【BFS + 打印路径】

题解:  用一个结构体二维数组来存每个点的上一个点的坐标,通过递归到达起点,在回溯时打印路径 #include<iostream> #include<cstdio> #include<...

2018-08-04 15:14:16

阅读数:12

评论数:0

POJ - 2251 - Dungeon Master 【BFS】

题意:  从S到E需要多少分钟(只能上下左右前后移动一格,每移动一个耗费1分钟); #include<iostream> #include<cstdio> #include<cstri...

2018-08-04 14:34:14

阅读数:19

评论数:0

Codeforces - 617E - XOR and Favorite Number【莫队】

#include<bits/stdc++.h> using namespace std; const int maxn = 1<<20; struct node { int l, r, id; }Q...

2018-08-04 10:38:45

阅读数:20

评论数:0

POJ - 2230 - Watchcow【欧拉回路】/补

#include<iostream> #include<cstdio> #include<vector> using namespace std; const in...

2018-08-01 15:44:48

阅读数:21

评论数:0

UVA - 10129 -Play on Words【欧拉路】/补

(来自:《算法竞赛入门经典》)题意:输入n(n≤100000)个单词,是否可以把所有这些单词排成一个序列,使得每个单词的第一个字母和上一个单词的最后一个字母和上一个单词的第一个字母相同(例如acm,malform,mouse)。每个单词最多包含1000个小写字母。输入中可以有重复的单词。 【分析...

2018-08-01 10:48:50

阅读数:23

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭