自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Holedox Moving 贪吃蛇 BFS 状态压缩

感谢原作者:http://wenku.baidu.com/view/273075d733d4b14e852468bb.html 从这里学会的状态压缩自己写了一遍 用queue记录蛇身, 结果超内存了, 时间就更别说了。而且一开始写的没有考虑到蛇头可以在同一个位置, 身体的状态是可以不同的因素。关键:1. 蛇只能走4个方向(其实已知是3个), 0, 1, 2, 3表示方向, 只需要2

2013-04-18 19:47:18 1013

原创 素数环 DFS 回溯

之前全排列都是用next_permutation(), 没自己写过。 看到全排列就想逃避。 急着去看解题报告, 没完全看完就想自己写, 结果写的过程中报告的思路跟自己的思路乱成一团。。所以: 1. 依赖库函数的前提是, 自己能写出来这样的函数     2.要嘛不看解题报告, 要嘛就完全看完、看懂了再自己写。素数环:相邻两个数的和为素数 用DFS + 回溯#inc

2013-04-18 19:32:11 637

原创 Eeny Meeny Moo(变相约瑟夫)

在搜索专题里做到这题的,,没感觉是搜索。题目关键: 1.第一个城市无条件断网   2.要让第二个城市最后断电#include #include bool find(int, int);int main(){ int n; while (scanf("%d", &n) && n) { for (int i = 2; ; i++) { if (find(i,

2013-04-18 19:15:47 974

原创 Knight Moves BFS

又一次做到这一题了, 记得第一次做的时候, 理解成DFS。(其实当时没有DFS || BFS的概念), 这一次做这题信手捏来。#include #include #include using namespace std;#define DIRECTION_N 8#define MAP_SIZE 8#define REACHED 1#define UNREACHED 0str

2013-04-18 19:11:25 620

原创 uva572 Oil Deposits(启发DFS)

#include #include #define MAX_N 100#define DIRECTION_N 8const int direction[DIRECTION_N][2] = {{1,0}, {-1,0}, {0,1}, {0,-1}, {1,1}, {-1,-1}, {1,-1}, {-1,1}}; //油田可以八个方向相邻char map[MAX_N][MAX_N];

2013-04-18 19:06:23 650

原创 阶乘 计算中间结果引出的问题(已解决)

关键不在阶乘。 在表达式。。。下面一(C7取3)为例子。 正确答案应该是35  。一开始我用 表达式3 结果 为16   后来感觉奇怪 用了表达式1 结果为35, 更奇怪 。 表达式2 跟3是一样的。s 先与 (n - i)相乘 再除以 (n_m - i)   与 (n - i) 跟(n_m - i)先乘 在与s相乘  有什么区别吗?#include int main()

2013-04-14 23:56:49 884

原创 HDU1010_半成品

http://acm.hdu.edu.cn/showproblem.php?pid=1010题意: n*m迷宫中 S为起点 D为终点 X为墙 , t为时间。 要求: 每一步只能走一次, 走一步消耗一秒, 在消耗的时间刚好为t的时候到达D则小狗生还否则,死亡。(有刚好本题就为DFS题目了, 一开始没注意 做成BFS了)。注: 用DFS超时了, 需要做剪枝。(下面的代码超时了)http:/

2013-04-14 21:00:36 684

原创 HUD1002

#include #include #define MAX_BIT 1100void toDigit(char *, int *);void toPlus(int *, int *, int, int);bool firstLine = true;int main(){ int cases; scanf("%d%*c", &cases); for (int i =

2013-04-14 15:33:45 849

原创 POJ1915 Knight Moves BFS (UVA439 与之相似)

1.常数组记录骑士的8个方向走法2.用网记录骑士走过的点,防止重复 reached[MAX_SIZIE][MAX_SIEZE];3.运用队列queue。(自己写的第一个版本是用递归, 各种错误。 AC版本是看了:(原连接找不到了) 理解之后 自己重写的)先上AC代码:#include #include #include using namespace std;

2013-04-06 08:54:17 732

原创 POJ1001 高精度

题意: 实数的n次幂。如果小于0,小数点前的0不用输出。算法: 1.输入(底数当做字符串来处理, 指数直接int输入)     2.记录小数点位数,删除小数点     3.将底数由char[] ——>int[],并且颠倒数字顺序。如:“95.123”——>{3, 2, 1, 5, 9}.同时获取底数的位数     4.计算n次幂     5.输出。    细化: 1、2、3

2013-04-05 22:33:22 650

原创 STL: <algorithm>中 next_permutation()生成全排列

认识来源:http://blog.csdn.net/killua_hzl/article/details/3887429http://www.slyar.com/blog/stl_next_permutation.html/* * bool next_permutation() * like sort() * * how to use: * http://blog.csdn.

2013-04-03 22:03:16 659

原创 STL: <algorithm>中 sort()

/* * void sort(Randomlt first, Randomlt last) * void sort(Randomlt first, Randomlt last, Compare comp) * sort fist to last by ZiDian sort. * the Compare comp is a help funtion */ #include #in

2013-04-03 21:58:43 607

原创 c++ 栈stack

#include #include using namespace std;#define MAXN 100int main() { stack sign; char ch; bool ok = true; while (ch = getchar()) { if (ch == '(') { sign.push(ch); }else if (ch == ')')

2013-04-01 23:48:36 476

原创 c++队列 queue

1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main() {

2013-04-01 23:14:08 593

空空如也

空空如也

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

TA关注的人

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