随笔分类 -  ACM

图算法:广度优先遍历
摘要:图的遍历算法包括广度优先遍历和深度优先遍历。其中深度遍历主要用于解答树问题的求解,而深度遍历往往为了获得最短路径解。什么是最短路径解呢?视具体情况而定,比如最短的迭代步数。在一般的隐式图中很常见,因为隐式图的规模往往是无穷的。对于一般问题怎么思考呢?我想主要分三个步骤:分析问题(解答树or最短路径);套用框架;剪枝优化。下面给出广度优先遍历的基本框架,关键词:队列。#include #include #include #define ONLINE 1using namespace std;int graph[8][8];int visited[8];queue q;char s[8];void 阅读全文

posted @ 2013-06-25 22:04 zjgtan 阅读(340) 评论(0) 推荐(0)

c++文件操作
摘要:#include 1、freopen(char* filename, char* flag, FILE* stream);作用:打开文件,并将流重定向倒stream上。 阅读全文

posted @ 2013-06-25 21:45 zjgtan 阅读(132) 评论(0) 推荐(0)

回溯法:八皇后问题
摘要:什么是回溯法?回溯来源于基本的枚举:void print(序列A, 集合S){ if (S为空) 输出序列A else 按照“从小到大的顺序”依次考虑S中的每个元素 { print(A的新序列, S-{v}); //递归 } }其中,测试元素通过一个for循环加入,递归通过cur下标指示当前位置。很明显,这是一个对解答树的先序遍历过程,叶节点就是问题的解。但是,当问题规模扩大时枚举量指数级的扩大。问题在于枚举将解的判断置于叶节点,而忽视了搜索路径中的判断。因此回溯就应运而生,也就是在测试节点加入时就测试合理性,(合理) ? 递归:剪枝。... 阅读全文

posted @ 2013-06-17 12:21 zjgtan 阅读(418) 评论(0) 推荐(0)

uvoj10055
摘要:#include <stdio.h>#include <assert.h>int main(){ long long hash, opp; int t; while (scanf("%lld%lld", &hash, &opp) == 2) { printf("%lld\n", (hash < opp) ? opp - hash : hash - opp); }}大整数问题,输入数据不大于2^32次方,因此用32位的int是不够的。故而采用long long型,输入输出占位符为"%lld" 阅读全文

posted @ 2013-05-05 22:07 zjgtan 阅读(188) 评论(0) 推荐(0)

导航