2012年8月24日
摘要: 昨天新下了个DEV,没法编译。所以直接交了,水题。不解释!。。。。。。嘎嘎,不编译直接AC,豪爽!#include<cstdio>#include<string>#include<map>#include<iostream>using namespace std;int main(){ int i,j,k,n; string s1,s2; int num1,num2; //num1 代表所有人个数,num2代表被打败过的人的数目 map<string,int> m1; map<string,int> m2; map< 阅读全文
posted @ 2012-08-24 09:40 hrbust_09zhangyabin 阅读(207) 评论(0) 推荐(0) 编辑
  2012年5月19日
摘要: 这段时间不怎么写文章了,但没偷懒。一直刷题,学习哦!比如这一集是我第三道线段树,嘿嘿,越来越明白了。不错#include<stdio.h>struct node{ int l; int r; int num;}nod[400005];void build(int l,int r,int n){ nod[n].l=l; nod[n].r=r; nod[n].num=1; if(l==r) return ; int mid=(l+r)/2; build(l,mid,n*2); build(mid+1,r,n*2+1);}void u... 阅读全文
posted @ 2012-05-19 21:48 hrbust_09zhangyabin 阅读(187) 评论(0) 推荐(0) 编辑
  2012年4月10日
摘要: 最小生成树和dij没有什么区别。一个是求最小的和,一个数要把每个最小值放在数组里!无他 阅读全文
posted @ 2012-04-10 15:57 hrbust_09zhangyabin 阅读(267) 评论(0) 推荐(0) 编辑
  2012年4月6日
摘要: 不是找最短路,而是找最短时间。 用优先队列,优先出队耗时最少的点。从这道题可以深刻理解队列在bfs中的用途,它仅仅是作为出队的工具,你想找对短路行,找最短时间也行,找最少拐点也可以。总之,只要你定义好,按什么优先出队就行了。AC:#include<queue>#include<cstdio>#include<cstring>using namespace std;char map[205][205];int visit[205][205]; //记录走到该点所花费的时间 int fang[4][2]={{0,1},{0,-1},{1,0},{-1,0}};s 阅读全文
posted @ 2012-04-06 13:20 hrbust_09zhangyabin 阅读(218) 评论(0) 推荐(0) 编辑
  2012年4月5日
摘要: 尼玛,就因为没发现‘yes’写成‘yrs’。整整让哥找了一个小时的bug。有没有..........此刻,内流满面!分析:开始以为是单纯的BFS,结果WA无数次!!后来分析后发现是要找到不超过转向次数的转向路径,最重要的是已经访问的节点不能直接标记为已经访问。因为存在远距离但是转向少的情况,所以要标记上每一个已经访问的点到起点所需要的转弯次数。#include<cstdio> //这题和连连看一样,走过的点可以再次访问 #include<queue>#include<cstring>using namespace std;#define inf 100000 阅读全文
posted @ 2012-04-05 20:52 hrbust_09zhangyabin 阅读(248) 评论(0) 推荐(0) 编辑
  2012年4月4日
摘要: 这次比赛打的不好,刷六道题应该不难,结果就刷了4道水题。总结:1,代码能力下降,前一段时间浮躁,写题总想看报告!可恶,结果到打比赛时还是想看模板,看报告!悲剧啊,决定以后写题要自己想啊想啊,除非超过了三个小时还没头绪,自认为真没办法了,才能看人家的思路。而且,必须调整心态,把自己当新生,或者当白痴一样去学习!这样才能进步!2,靠的,到现在竟然还没掌握邻接表,还处于理解阶段!真扯淡,鄙视自己......3,没有什么值得骄傲的。踏踏实实的敲代码吧! 阅读全文
posted @ 2012-04-04 09:02 hrbust_09zhangyabin 阅读(124) 评论(0) 推荐(0) 编辑
  2012年4月3日
摘要: 在DP中很有帮助的滚动数组!昨晚做了一道题,开了一个int [5000][5000]的数组,OLE了,虽然可以用short [5000][5000]猥琐过,但毕竟只是特殊情况正确的方法是滚动数组压缩存储,整理了一下网上的资料:利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。不过经常还是用在DP题目中,因为DP题目是一个自下而上的扩展过程,我们常常用到是连续的解,前面的解往往舍弃!所以用滚动数组可以说是很有必要的。滚动数组 举个简单的例子:int i, d[100];d[0] = 1;d[1] = 1;for (i = 2; i < 100; i++) d[i] = d[i - 1 阅读全文
posted @ 2012-04-03 08:33 hrbust_09zhangyabin 阅读(146) 评论(0) 推荐(0) 编辑
  2012年3月31日
摘要: 由于STL是一个统一的整体,map的很多用法都和STL中其它的东 西结合在一起;map中由于它内部有序,由红黑树保证,因此很多函数执行的时间复杂度都是log2N的,如果用map函数可以实现的功能,而STL Algorithm也可以完成该功能,建议用map自带函数,效率高一些……Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字 的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一 颗红黑树(一种非严格意义上的平衡二叉树),这颗树 阅读全文
posted @ 2012-03-31 14:39 hrbust_09zhangyabin 阅读(202) 评论(0) 推荐(0) 编辑
  2012年3月24日
摘要: 靠的,写了一上午,终于AC了,靠的............poj的题确实要麻烦一些.代码有点长,但思路一点也不麻烦。1,找最短路时,用bfs。这个很简单。 2,关键,不太熟悉记录路径。最后借鉴了一下别人的算法,用一个结构体数组存储路径,再用dfs 的思想找到起点。顺势输出, KO! 写完之后,回顾一下,就是考察你会不会回溯。要深刻理解回溯啊!太有用了#include<iostream>#include<queue>#include<cstring>#include<cstdio>using namespace std;int a,b,c;int 阅读全文
posted @ 2012-03-24 13:32 hrbust_09zhangyabin 阅读(434) 评论(0) 推荐(0) 编辑
  2012年3月23日
摘要: 就是在二维bfs的基础上,再添加两个方向。无他呵呵,学了STL,用<queue>超方便啊!好爽,要继续发扬光大AC:#include<iostream>#include<queue>#include<cstring>#include<cstdio>using namespace std;char map[50][50][50];int flag[50][50][50]; //0没有走过,1代表走过 int fanx[6]={1,-1,0,0,0,0};int fany[6]={0,0,1,-1,0,0};int fanz[6]={0, 阅读全文
posted @ 2012-03-23 20:43 hrbust_09zhangyabin 阅读(374) 评论(0) 推荐(0) 编辑