赵乐ACM

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 6 7 8 9 10 11 下一页

2012年3月13日

摘要: #include #include #include using namespace std; char tiles[22][22]; int used[22][22]; int count, w, h; void countstep(int i, int j) { count ++; if (i > 1 && used[i-1][j] == 0) //向上 { used[i-1][j] = 1; countstep(i-1, j); } if (i 0 && used[i][j-1] == 0) //向左... 阅读全文
posted @ 2012-03-13 17:59 赵乐ACM 阅读(277) 评论(0) 推荐(0)

2012年3月12日

摘要: 1.思路果然清晰了,十分钟搞定#include #include #include #include using namespace std; int n, k; queue q; int step[100010]; int bfs(int a) { if(a == k) return step[k]; else { if(a - 1 >= 0 && step[a - 1] == 0) { step[a - 1] = step[a] + 1; q.push(a... 阅读全文
posted @ 2012-03-12 20:22 赵乐ACM 阅读(205) 评论(0) 推荐(0)

摘要: 1.典型的bfs。2.难点在剪枝部分。有一个记录所走step的数组,记录到每个点所走的步数,如果一个点没走过,放进队列中,如果一个点走过,比较原来这个点的step值和由当前点计算的值,如果大,另其等于当前点的step值+1;3.这道题犯了超级低级的错误。。。写好了bfs()函数,结果在main()函数中没有添加bfs();语句,导致调试了好久得不到想要的结果。。。#include #include #include #include using namespace std; struct Node { int x, y; } sta, end; char a, c; in... 阅读全文
posted @ 2012-03-12 20:20 赵乐ACM 阅读(179) 评论(0) 推荐(0)

2012年2月28日

摘要: 1.典型的宽度优先搜索;2.典型的队列使用问题;3.刚开始一直WA,原来是边界弄错了,切记,越界就是wa以下是代码:#include #include #include #include using namespace std; int step[100010], flag[100010]; queue q; void bfs(int n, int k) { q.push(n); flag[n] = 1; while(q.size()) { int x = q.front(); q.pop(); i... 阅读全文
posted @ 2012-02-28 17:30 赵乐ACM 阅读(205) 评论(0) 推荐(0)

摘要: 1.迄今为止做过的最费劲的一道题,到现在思路还不是很清楚;2.主要考察并查集,并查集的概念(http://www.nocow.cn/index.php/%E5%B9%B6%E6%9F%A5%E9%9B%86)。到目前为止这种思想还没有。3.并查集的主要操作,找父节点,合并,路径压缩;4.刚开始WA,把100000改成100010后AC了就以下是代码:#include #include using namespace std; int fath[100010], rank[100010], visit[100010]; void initial() { for(int i = ... 阅读全文
posted @ 2012-02-28 15:16 赵乐ACM 阅读(105) 评论(0) 推荐(0)

2012年2月27日

摘要: 1.解体思路,寻找先序中序后序中顶点的位置,用递归计算。以下是解体思路:(摘自http://www.cnblogs.com/allensun/archive/2010/11/05/1870214.html)preorder的第一个节点D就是这棵树的根节点,即为postorder中的最后一个元素然后在inorder中找到该节点D,其左边为ABC为该根节点左子树的inorder,右边EFG为右子树inorder对应的preorder中BAC为该根节点左子树的perorder,EGF为右子树preorder再递归对左右子树应用同样的方法2.体会递归函数的写法。确定使用递归函数之后,对第一次递归时的计 阅读全文
posted @ 2012-02-27 17:07 赵乐ACM 阅读(129) 评论(0) 推荐(0)

摘要: 1.栈的使用2.一种做题方式,在草纸上人工做,想清楚先后顺序,然后让机器做#include #include #include using namespace std; int num[1000]; int main() { int a, i, j; while(scanf("%d", &a) != EOF) { if ( a == 0 ) break; while(scanf("%d", &num[0])) { if(num[0] == 0) ... 阅读全文
posted @ 2012-02-27 15:08 赵乐ACM 阅读(149) 评论(0) 推荐(0)

2012年2月20日

摘要: 1. 从小数找规律,验证规律。这个题,当n前边的数最后为1的方案可以拆分为两个,即最后两步分两步走还是一步走完,而最后为1的方案数等于n-1的方案数。这样就说明out【n】=out[n-1]+out[n-2]2.想清楚这些,代码一气呵成。以下是代码:#include int count[47]; int main() { int i,m,num; scanf("%d", &m ); count[0] = 1; count[1] = 1; for ( i = 2; i <= 46; i++ ) { count[i] = cou... 阅读全文
posted @ 2012-02-20 11:45 赵乐ACM 阅读(153) 评论(0) 推荐(0)

摘要: 1.由于名字要和选票数一一对应,因此需要用到结构体。在用到结构体的过程中,需要对结构体重用于记录选票数的变量进行初始化,解决方法是利用循环输入时顺便解决初始化的问题。更好的方法,或者利用一个函数就能解决的方法还没有找到;2.第一次用到do…while这样的循环语句,体会和while循环语句的不同;3.如何用指针指向结构体数组的某一个元素,这个问题始终没有解决。如果解决的话,就可以直接用sort()了,但是会增加时间复杂度。4.最近几个题中一次提交就成功,哈哈以下是代码:#include #include #include using namespace std; int tex[10... 阅读全文
posted @ 2012-02-20 10:38 赵乐ACM 阅读(170) 评论(0) 推荐(0)

2012年2月19日

摘要: 1.做成之后,检查了三个小时,逐步完善,到最后发现自己把电脑要考虑的工作给做了,需要把所有情况都给列出来,果断放弃。2.最短时间比较好想,左半部分蚂蚁向左走,右半部分蚂蚁向右走,没有碰撞发生。为所有最短时间中的最长的。最长时间可能涉及碰撞。碰撞其实相当于穿透,-->AB 相当于因此碰撞可以不考虑。最长时间就是离一端最远的蚂蚁所用时间。3.正常的思路应该是先求每个位置到两个端点的距离中的较大的那一个,然后再从这些值里边选取最大最小值。4.当系统显示accepted的时候,快哭了。。。这题做的太痛苦了,还没有一点算法的思想,思路不清晰以下是代码#include #include #inclu 阅读全文
posted @ 2012-02-19 20:28 赵乐ACM 阅读(325) 评论(0) 推荐(0)

上一页 1 ··· 6 7 8 9 10 11 下一页