题意:
在4*4的格子中有9个窗口,窗口会覆盖它之下的窗口,问是否存在一个窗口放置的顺序使得最后的结果与输入相同。
分析:
在数据规模较小且不需要剪枝的情况下可以暴力(思路清晰代码简单),暴力一般分为枚举子集(for(s=0;s
代码:
//poj 2585
//sep9
#include
#include
using namespace std;
int order[10];
in...
思路:记录每行每列每个宫已经出现的数字即可,数据比较弱
另外POJ 3074 3076 必须用剪枝策略,但实现较麻烦,还是以后学了DLX再来做吧
//Accepted 160K 0MS
#include
#include
#include
#include
using namespace std;
const int N =15;
char sudo[N][N];
bool visr[N][...
分类:
其他好文 时间:
2015-03-15 15:17:40
阅读次数:
126
//
// main.cpp
// 529
//
// Created by Fangpin on 15/3/14.
// Copyright (c) 2015年 FangPin. All rights reserved.
//
#include
#include
using namespace std;
int a[10005]={1,2},n;
bool ok;
void dfs...
分类:
其他好文 时间:
2015-03-15 13:54:33
阅读次数:
130
用N个串中找到最短的公共串(不要求连续,只要相对位置一样即可)
迭代加深搜索即可
剪枝:当前的深度+最少还有加深的深度是否大于限制的长度,若是,则退回。
#include "stdio.h"
#include "string.h"
const char ch[10]="ATCG";
int deep,n;
char s[10][10];
int pos[10];
int Max(...
分类:
其他好文 时间:
2015-03-13 18:52:07
阅读次数:
190
POJ 2531 dfs递归枚举Network SaboteurTime Limit:2000MSMemory Limit:65536KTotal Submissions:9580Accepted:4560DescriptionA university network is composed of ...
分类:
其他好文 时间:
2015-03-13 16:18:40
阅读次数:
155
题意:先给出离出火地点最近的路口,然后给出一些之间通畅的路口。要求给出所有从1号路口到火灾事故点的不含回路的简单路径。
思路:方法很容易想到,dfs即可。但是简单的dfs会超时,3s+. 之后看别人用了并查集,去了解了下并查集的思想。这里可以通过并查集提前判断一个路口是否和火灾路口想通,如果不通,则直接剪枝了。别看仅这一个优化,最后AC时间0.022,性能提升还是很多的。因为你早早地剪去一个结点...
分类:
其他好文 时间:
2015-03-12 22:39:11
阅读次数:
190
第一次写回溯。。发生了很多错误(虽然回溯应该是很简单的算法了,就是剪剪枝而已)
可能也有思考不全的因素,一开始老是想多减点枝,结果减多了。。虽然第一次的时间确实很可观。~
有一点可能很uva上题目的描述不一样,uva上说a single upper case character in the the range `A' to `Z'), followed by a `:'
节点只有一个的...
分类:
其他好文 时间:
2015-03-12 19:20:25
阅读次数:
144
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010题目描述:在n*m的矩阵中,有一起点和终点,中间有墙,给出起点终点和墙,并给出步数,在该步数情况下走到终点,走过的点不能再走;题目要点:dfs+奇偶剪枝;输入; 本题用dfs可以做出结果,但是会.....
分类:
其他好文 时间:
2015-03-11 00:24:27
阅读次数:
227
题意解析:其实就是判断起始点能否到达终止点。如果起始点和终止点值不同,直接输出NO。bfs,dfs都行。
附加条件:①不能出边界
②不能走值为0的点
③路径不能转向两次以上
节点需要记录该点的坐标,方向,转向次数。下面是BFS代码(注意剪枝:超过两次的就不要再加入队列了)
#include
#include
#inc...
分类:
其他好文 时间:
2015-03-10 19:31:53
阅读次数:
138
题目链接:Codeforces 484B Maximum Value题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,而且ai≥aj解题思路:类似于素数筛选法的方式,每次枚举aj,然后枚举k,每次用二分找到小于k?aj而且最大的ai,维护答案,过程中加了一些剪枝。#include #i...
分类:
其他好文 时间:
2015-03-10 13:37:12
阅读次数:
182