摘要: 深度优先算法入门的一道非常好的题目,还考虑到了剪枝http://acm.hdu.edu.cn/showproblem.php?pid=1010 1 //这个代码是没有考虑任何剪枝的 2 //将所以情况都遍历了一遍, 3 //提交的时候是会超时的 Time Limit Exceeded 4 #include 5 #include 6 using namespace std; 7 8 #define MAX 10 9 char mapz[MAX][MAX];10 int N,M,T;11 int dx, dy;12 bool escape;13 14 void dfs(int sx, int .. 阅读全文
posted @ 2013-08-02 21:49 Geekers 阅读(322) 评论(0) 推荐(0) 编辑
摘要: C语言的初学者经常会问一些貌似“专业”的问题,比如#includemain(){inti=5;intj=++i+++i+++i;printf("%d\n",j);system("pause");}这样的问题实在不需要多做考虑,而且应该在实际编程实践中尽量避免。因为它们几乎都是“未指明的行为”或“由实现定义的行为”。另一方面,程序的错误或Bugs,通常是由于“未定义的行为”。C++Primer第四版中的解释:使用了未定义行为的程序都是错误的,即使程序能够运行,也只是巧合。未定义行为源于编译器不能检测到的程序错误或太麻烦以至无法检测的错误。不幸的是,含有未定 阅读全文
posted @ 2013-08-02 15:28 Geekers 阅读(2818) 评论(0) 推荐(1) 编辑
摘要: 你认为为什么C++不叫做++C?看到这个习题,顿感眼前一亮(不禁想起某些国内书籍的题目,真是平淡如水),这对于理解前自增操作与后自增操作而言着实是个好的题目。想弄明白这个问题,就需要先理解一些基础的概念。什么是自增操作呢?++操作符,即自增操作符。自增操作符有两种形式:前置操作和后置操作。前自增操作生成左值,在给操作数加1后返回改变后的操作数值。后自增操作生成右值,给操作数加1但返回未改变的操作数原值。*事实上,因为C++具有操作符重载的功能,自增操作不仅仅可以表示加1前置操作返回的是加1后的值,返回的是对象本身,所以这是左值。后置操作返回的是加1前的值,其返回值可以近似的理解为与原操作数值相 阅读全文
posted @ 2013-08-02 15:05 Geekers 阅读(1191) 评论(0) 推荐(1) 编辑
摘要: 1、动态申请一维内存(1)、用malloc函数#include #include #include int main(){ int n=5; int *temp; temp=(int*)malloc(sizeof(int)*n); for(int i=0;iusing namespace std;int main(){ int n=5; int *temp; temp=new int[n]; for(int i=0;i#include #include int main(){ int n=5; //n表示行 int **temp... 阅读全文
posted @ 2013-08-02 13:32 Geekers 阅读(628) 评论(0) 推荐(0) 编辑
摘要: //译题//★Prime Cryptarithm 牛式下面是一个乘法竖式,如果用我们给定的那几个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式. * * *x * * ------- * * ** * *-------* * * *数字只能取代*,当然第一位不能为0.写一个程序找出所有的牛式.PROGRAM NAME: crypt1INPUT FORMATLine 1: 数字的个数.Line 2: N 个用空格分开的数字(每个数字都∈{1,2,3,4,5,6,7,8,9}) .SAMPLE INPUT (file crypt1.in)52 3 4 6 8OUTPUT ... 阅读全文
posted @ 2013-08-02 00:00 Geekers 阅读(324) 评论(0) 推荐(0) 编辑