自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 POJ 3076 Sudoku

这题的剪枝太要命了,本来也不是很复杂的东西,但是实现起来真的巨臭巨长!做完这题的我突然有种豪气,好像可以 de 尽天下的 bug !贴上来留个纪念,估计也没人看得下去这么长的代码hhh总的来说比 POJ 3074 的数独要求更严格,要从 16 个字母是不是都有地方填的角度多做一组可行性剪枝。剪枝的过程中顺便把只有一种字母可填的点先填上,还可以减少递归的层数。#include <...

2020-01-31 14:50:58 166

原创 PAT顶级 1004 To Buy or Not to Buy - Hard Version (35分)

这题用 DFS 暴力搜索,对商店里的串挨个判断买或不买,状态是“当前已经买下的珠子,当前正犹豫买不买的串”。做两个剪枝即可,一个最优性剪枝,一个可行性剪枝:当前需要额外购买的珠子个数已经超过了最优解时剪掉,当前选择已经不可能买全所有珠子时剪掉。搜索前先做出一个预处理数组,储存第 i~n-1 个串包含的珠子情况。DFS 到达每个状态时,首先处理一遍已经买的珠子,得到已经额外买下的珠子数量,顺...

2020-01-30 12:48:06 472

原创 UVa10603 Fill

用类似BFS、Dijkstra的算法遍历状态图。三个杯子水量之和不变,所以状态空间是二维而不是三维的。vis数组只需要开200*200,开得下。状态图的边权是非负的,所以用优先队列可以保证对每个结点的第一次访问都是走的最短路径。#include <iostream>#include <cstring>#include <queue>#inc...

2020-01-27 22:03:09 124

原创 UVa129 Krypton Factor

回溯法。使用26个字母中前L个字母,要求输出一个不存在相同的相邻子串的序列,该序列应是所有合法序列中字典序第N小的。DFS枚举所有可行序列,因为序列长度不定所以解答树中除根节点之外的每个结点都算合法序列,得到N个合法序列后停止枚举。每次填入字符后只需检查刚填入的字符是否形成了一对相同的相邻子串,因为填入前的序列已经被确认过是合法的。#include <iostream>...

2020-01-27 14:18:29 127

原创 UVa725 Division

给一个n,求所有相除正好等于n的五位整数,使它们的数位加起来刚好用尽0~9十个数字。按字典序输出。分子可由分母算出,所以利用DFS从小到大穷举分母,在分子达到6位时终止枚举。#include <iostream>#include <cstring>using namespace std;char s[5];bool taken[10];bool exc...

2020-01-26 22:49:00 90

原创 UVa10305 Ordering Tasks

给出一个DAG,求拓扑序。用DFS遍历,可以得到逆拓扑序,遍历过程中反向填入数组即可。c[] 记录结点的三种状态,-1表示在递归处理中,0表示没有访问过,1表示已经填入序列。递归过程中没有碰到-1的结点说明题目保证给出的图是DAG。#include <iostream>#include <cassert>#include <cstring>#d...

2020-01-26 19:37:28 93

原创 UVa816 Abbott's Revenge

用BFS求最短路。结点有多个状态。迷宫图,从不同的方向进入一个结点,下一步可以走的方向不同,所以给图增加一个维度表示进入方向,相当于扩充了结点数量,相应地记录前驱的数组也有三个维度。BFS扩充后的图,根据前驱数组打印路径。#include <iostream>#include <queue>#include <cstring>#include ...

2020-01-26 14:45:32 117

原创 UVa1103 Ancient Messages

利用图遍历处理连通分量。输入是一幅位图,1是黑0是白,不过用十六进制给出,需要做点解码。图中黑像素可能构成几种符号,要求将它们识别输出。注意需要在图四周加宽度为1的padding,否则可能误把贴着墙的符号的洞眼数量判多。#include <iostream>#include <cstring>#include <set>#in...

2020-01-25 23:40:59 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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