摘要: 走迷宫让我想起数据结构的课设,不过是反过来找到出口的最短路径,方法差不多,用的bfs,想法是从bfs找到每个点的最短路径,其中最长的就是最难到出口的.不过这图确实让我比较蛋疼,开始以为一个符号算一格,定义的迷宫长宽为2h+1,2w+1...后来一跑发现是17,和例子的9差这么多...仔细一看原来迷宫还是h*w大小的...后来来想着怎么改进存储,想了好一会发现改起来还真麻烦,后来脑子一转,我无非多走了1倍,于是把结果(tmax+1)/2竟然过了...有点要注意,bfs时遇到第一次访问的点时,存进去当前已走步数,如果再次访问到,若发现第二次步数小于已存的,则替换为更小的,同时入队列.反之不入列。对 阅读全文
posted @ 2013-09-13 11:09 cavehubiao 阅读(233) 评论(0) 推荐(0) 编辑
摘要: curl搞了半天,开始照着说明进入vs2008 compt编译,结果出错,后来自己试着cmake搞了下,开始以为cmake是可以直接生成调用编译器编译链接成二进制文件。后来才发现只是生成对应的项目...还是太无知了然后dll有了,lib却只有个libcurl_imp.lib,跑例程时要libcurl.lib,最后自己把名字一改,竟然过了....还有是dll路径问题,只知道vs里可以设置include,和lib搜索目录,dll还不知道怎么设置。只知道放到exe同目录下可以找到,或者放到系统文件架下.后来在网上看到改工作目录可以工程属性 => 配置属性 => 调试 => 工作目录 阅读全文
posted @ 2013-09-12 23:11 cavehubiao 阅读(2617) 评论(0) 推荐(0) 编辑
摘要: 防鄙视系列,以前挖的坑,早晚要自己填下.大学荒废了4年,混了个研究生,才发现压力更大,不多说了,都是泪(ab)‘=b'a' ,'表示逆矩阵,这是矩阵乘法的性质 1 void reverse(int m,int n,int*buf); 2 void rswap(int ms,int me,int ns,int ne,int* buf); 3 int main() 4 { 5 int buf[]={1,2,3,4,5,6,7}; 6 reverse(0,sizeof(buf)/4,buf); 7 8 return 0; 9 10 }11 12 void rever... 阅读全文
posted @ 2013-09-12 21:03 cavehubiao 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 思路比较清楚,模拟+判断重复,定义好表示方式用位运算判重。如何判重即是判断是否能相遇,记录每分钟时人和牛所在位置与行走方向,如果到某分钟时发现当前位置和方向已被记录过,则说明陷入循环及永不会再相遇 1 /* 2 3 ID: hubiao cave 4 5 PROG: ttwo 6 7 LANG: C++ 8 9 */ 10 11 12 13 14 #include 15 16 #include 17 18 #include 19 20 using namespace std; 21 22 23 int field[12][12]; 24 int re... 阅读全文
posted @ 2013-09-12 09:55 cavehubiao 阅读(207) 评论(0) 推荐(0) 编辑
摘要: dfs搞了半天硬是没过,看了别人的题解我感觉却更加迷惑了.. 1 /* 2 3 ID: hubiao cave 4 5 PROG: concom 6 7 LANG: C++ 8 9 */10 11 12 #include 13 #include 14 #include 15 #include 16 using namespace std; 17 int have[101][101]; 18 int control[101][101]; 19 int main() { 20 ofstream fout ("concom.out"); 21 ifst... 阅读全文
posted @ 2013-09-11 14:32 cavehubiao 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 防鄙视系列 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 void norecursion_QuickSort(int*,int); 8 int partition(int*,int,int); 9 int main()10 {11 int buf[]={112,332,1,200,123,-1,23214};12 norecursion_QuickSort(buf,sizeof(buf)/4);13 int m;14 return 0;15 }16 17 void norecur... 阅读全文
posted @ 2013-09-10 20:31 cavehubiao 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 写个防笔试 1 #include 2 3 struct node 4 { 5 node* pnext; 6 int value; 7 node():pnext(NULL){} 8 }; 9 10 node* ListMerge(node*,node*);11 int main()12 {13 node* head1,*head2;14 head1=new node();15 head1->value=1;16 head1->pnext=new node();17 head1->pnext->value=3;18 head... 阅读全文
posted @ 2013-09-10 18:55 cavehubiao 阅读(308) 评论(0) 推荐(0) 编辑
摘要: dpdp始终是让我头疼,开始看着像背包问题,想了会列个状态方程 dp[n]=dp[n]+dp[money[i]];后来一看不对应该是dp[n]=dp[n]+dp[n-money[i]];看来01背包问题还是没搞清楚,后的循环也有问题,我开始的外循环是总钱数,里循环才是硬币种类,应该反过来. 1 /* 2 3 ID: hubiao cave 4 5 PROG: money 6 7 LANG: C++ 8 9 */10 11 12 13 14 #include15 16 #include17 18 #include19 20 using namespace std;21 22 23 24... 阅读全文
posted @ 2013-09-10 13:19 cavehubiao 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 一道题#pragma pack(2)classA{inti;unionU{charbuff[13];inti;}u;voidfoo() { }typedefchar* (*f)(void*);enum{red, green, blue} color;}a;sizeof(a)的值是()A、20 B、21C、22D、24 E、非以上选项(第一个i 4,union 一共14 enum 4,其他不占。union 详解union A{int a[5];charb;double c;};struct B{int n;A a;char c[10];}sizeof(B) = ?答案:union A:{int 阅读全文
posted @ 2013-09-09 21:34 cavehubiao 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。快慢指针的应用判断单链表是否为循环链表让快慢指针从链表头开始遍历,快指针向前移动两个位置,慢指针向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,不是循环链表。如果 快指针追上慢指针,则表示出现了循环。fast=slow=head;while(true){if (fast==NULL || fast->next==NULL)return false;else if (fast==slow || fast->next==slow)return t 阅读全文
posted @ 2013-09-09 21:18 cavehubiao 阅读(355) 评论(0) 推荐(0) 编辑