- 博客(16)
- 收藏
- 关注
十四、数据结构相关算法
1.链表的定位函数 loc(I:integer):pointer; {寻找链表中的第I个结点的指针}procedure loc(L:linklist; I:integer):pointer;var p:pointer;j:integer;beginp:=L.head; j:=0;if (I>=1) and (I<=L.len) then while j<I do begin ...
2006-09-12 09:58:00 56
十三、BFS框架
IOI94 房间问题head:=1; tail:=0;while tail<head do begininc(tail);for k:=1 to n do if k方向可扩展 then begin inc(head); list[head].x:=list[tail].x+dx[k]; {扩展出新结点list[head]} list[head].y:=list[tail].y+dy[k...
2006-09-12 09:57:00 95
十二、DFS框架
NOIP2001 数的划分 procedure work(dep,pre,s:longint); {入口为work(1,1,n)}{dep为当前试放的第dep个数,pre为前一次试放的数,s为当前剩余可分的总数}var j:longint;begin if dep=n then begin if s>=pre then inc(r); exit; end; for j:=pre...
2006-09-12 09:56:00 148
十、贪心
*会议问题(1) n个活动每个活动有一个开始时间和一个结束时间,任一时刻仅一项活动进行,求满足活动数最多的情况。解:按每项活动的结束时间进行排序,排在前面的优先满足。 (2)会议室空闲时间最少。 (3)每个客户有一个愿付的租金,求最大利润。 (4)共R间会议室,第i个客户需使用i间会议室,费用相同,求最大利润。 ...
2006-09-12 09:53:00 78
十一、回溯法框架
1. n皇后问题 procedure try(i:byte);var j:byte;begin if i=n+1 then begin print;exit;end; for j:=1 to n do if a[i] and b[j+i] and c[j-i] then begin x[i]:=j; a[j]:=false; b[j+i]:=false; c[j-i]:=fals...
2006-09-12 09:53:00 68
九.查找算法
1.折半查找 function binsearch(k:keytype):integer;var low,hig,mid:integer;begin low:=1;hig:=n; mid:=(low+hig) div 2; while (a[mid].key<>k) and (low<=hig) do begin if a[mid].key>k then hig:=m...
2006-09-12 09:52:00 67
八、全排列与组合的生成
1.排列的生成:(1..n)procedure solve(dep:integer); var i:integer; begin if dep=n+1 then begin writeln(s);exit; end; for i:=1 to n do if not used[i] then begin s:=s+chr(i+ord(''0''));used[i]:=true; ...
2006-09-12 09:51:00 101
七、进制转换
1.任意正整数进制间的互化 除n取余 2.实数任意正整数进制间的互化乘n取整 3.负数进制: 设计一个程序,读入一个十进制数的基数和一个负进制数的基数,并将此十进制数转换为此负 进制下的数:-R∈{-2,-3,-4,....-20} ...
2006-09-12 09:50:00 173
六、 树的遍历
1.已知前序中序求后序 procedure Solve(pre,mid:string);var i:integer;begin if (pre='''') or (mid='''') then exit; i:=pos(pre[1],mid); solve(copy(pre,2,i),copy(mid,1,i-1)); solve(copy(pre,i+1,length(pre)-i),cop...
2006-09-12 09:49:00 53
五、高精度计算
高精度数的定义:type hp=array[1..maxlen] of integer; 1.高精度加法 procedure plus ( a,b:hp; var c:hp);var i,len:integer;beginfillchar(c,sizeof(c),0);if a[0]>b[0] then len:=a[0] else len:=b[0];for i:=1 to len...
2006-09-12 09:48:00 85
四、排序算法
1.快速排序: procedure qsort(l,r:integer);var i,j,mid:integer;begin i:=l;j:=r; mid:=a[(l+r) div 2]; {将当前序列在中间位置的数定义为中间数} repeat while a[i]<mid do inc(i); {在左半部分寻找比中间数大的数} while a[j]>mid do dec(...
2006-09-12 09:46:00 103
三、背包问题
*部分背包问题可有贪心法求解:计算Pi/Wi数据结构: w[i]:第i个背包的重量; p[i]:第i个背包的价值; 1.0-1背包: 每个背包只能使用一次或有限次(可转化为一次): A.求最多可放入的重量。NOIP2001 装箱问题 有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 (正整数)。要求从 n 个物品中,任取若千个装入箱内,...
2006-09-12 09:45:00 73
二、图论算法
1.最小生成树 A.Prim算法: procedure prim(v0:integer); var lowcost,closest:array[1..maxn] of integer;i,j,k,min:integer; begin for i:=1 to n do begin lowcost[i]:=cost[v0,i]; closest[i]:=v0;end;for i:=1 ...
2006-09-12 09:43:00 89
一、数论算法
1.求两数的最大公约数 function gcd(a,b:integer):integer;begin if b=0 then gcd:=a else gcd:=gcd (b,a mod b);end ; 2.求两数的最小公倍数 function lcm(a,b:integer):integer;begin if a<b then swap(a,b); lcm:=a; whi...
2006-09-12 09:39:00 115
动态加载UltraWebListbar
数据库表结构为:表名:treeTable字段:L_ID:主键IDL_Name:树中显示的菜单名P_L_ID:属于某个菜单L_Page:导向路径L_PageName:文件名示例数据: L_ID L_Name ...
2006-09-05 17:55:00 242
动态加载UltraWebTree
数据库表结构为:表名:treeTable字段:L_ID:主键IDL_Name:树中显示的菜单名P_L_ID:属于某个菜单L_Page:导向路径L_PageName:文件名示例数据: L_ID L_Name ...
2006-09-05 17:50:00 90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人