摘要: 给即将面临Noip的二班同学: 我们共同走过了一年,在这里,真正认识彼此…… 失落过,但更多是欢笑…… 或许我们班的信息学竞赛承受着巨大的压力,但正因为这样,我们才学会了坚持;或许我们得不到他人的认可,但正因为这样,我们才可以真正做我们自己;或许我们最终什么都没有,或许我们会迎来质疑,嘲笑,失败,或许我们不久之后可能离去,但是请记住,我们拥有过,这早已足够。 一直以来,我想你们也可以感觉到,信息学竞赛似乎变成了坏孩子的代名词,作业少了,会怀疑我们,班级成绩不好,质疑是我们的拖累,就连作业都怀疑是抄的…… 我们在成绩与竞赛中煎熬,但是我们一定要咬牙坚持,黎明前,夜是最黑暗的。此外... 阅读全文
posted @ 2013-11-17 20:29 forever97 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 几天时间就把USACO chapter1重新做了一遍,发现了自己以前许多的不足。蒽,现在的程序明显比以前干净很多,而且效率也提高了许多。继续努力吧,好好的提高自己。这一章主要还是基本功的训练,没多少的思维难度,不过基础也是很重要的。——2013年11月17日1.1.1 Your Ride Is Here 题目很简单,长字符串读入,按位相乘,同时取模即可,一开始的时候居然忘记了给d1和d2赋值1,结果无论是什么字符串读入计算结果都为0,虽然是水题,还是要记住初始化!{ID: jiangyi10PROG: rideLANG: PASCAL}var d1,d2,i,j,k,l,m,n:l... 阅读全文
posted @ 2013-11-17 15:52 forever97 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 二叉堆在各种竞赛题目中通常都有涉及,主要是可以灵活地取出和插入,是一种在线的数据结构,对于几种基本操作和原理一定要烂熟于心。pascal模板放入操作procedure put(x:longint);var fa,son,tmp:longint;begin len:=len+1; heap[len]:=x; son:=len; while(son1)and(heap[son]len)or (heap[fa*2]heap[son] then begin tmp:=heap[fa]; heap[fa]:=heap[son]; heap[son]:=tm... 阅读全文
posted @ 2013-11-17 12:02 forever97 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 线段树其实复习的不是什么思想,主要应该是自己的代码风格与边界处理,就直接由题目来复习吧。另外,重新理解一下线段树的操作原理对于做题时很有帮助的。比赛前一定要耐心看一下每一种线段树的建树与维护方式。pascal模板不修改的RMQ:例题:vijosP1514 天才的记忆var x,y,i,j,k,l,m,n:longint; tree,a:array[0..1200000] of longint;function max(a,b:longint):longint;begin if a>b then exit(a); exit(b);end;{建树}procedure build_tree.. 阅读全文
posted @ 2013-11-17 11:52 forever97 阅读(270) 评论(0) 推荐(0) 编辑
摘要: LCA就是求解一棵树上两个节点的最近的共同祖先,主要运用倍增思想来解决问题。pascal模板倍增算法for j:=1 to k dofor i:=1 to n do f[i,j]:=f[f[i,j-1],j-1];(注:k:=ln(n)/ln(2),循环顺序一定不可以错)节点深度(计算节点深度同时计算出从根到节点路径上数字的和)procedure dfs(x:longint);begin if d[x]>0 then exit; if f[x,0]>0 then begin dfs(f[x,0]); d[x]:=d[f[x,0]]+1; sum[x]:=sum... 阅读全文
posted @ 2013-11-17 11:39 forever97 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 首先,复习一下矩阵运算,运算为c[x,y]:=a[x,i]*b[i,y],也就是说答案矩阵的第 i行第j个数就是a矩阵第i行所有数与b矩阵第j列所有数一一对应相乘的和。实现为程序语言:function mul(a,b:matrix; l,m,n,modnum:int64):matrix;var c:matrix;begin fillchar(c,sizeof(c),0); for i:=1 to l do for j:=1 to m do for k:=1 to n do inc(c[i,j],((a[i,k]mod modnum)*(b[k,j] mod m... 阅读全文
posted @ 2013-11-17 11:29 forever97 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 简单地复习一下排序,虽然说常用的只有几种但还是把所有的排序都复习一下,所有算法的存在都有它的理由,也都承载着许多人的智慧,再理解一遍对OI的学习或许有一些启发作用。pascal模板冒泡排序最早学习的就是冒泡学习,原理最简单,当然速度也是最慢的,不过在一些特殊的题型中会有一些独有的作用,首先,是它的交换原理的应用,比如一些只能左右交换的数据就只可以用冒泡排序,题目就像熟知的车厢重组求步数,是非冒泡排序不可的。在冒泡的过程中,一定要注意记录当前循环是否发生交换,如果无则结束,也算一个剪枝吧:i:=1 repeat bo:=true; for j:=1 to n-i do if a[... 阅读全文
posted @ 2013-11-17 10:51 forever97 阅读(261) 评论(0) 推荐(0) 编辑