- 博客(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关注的人