资源简介
本人精心整理自互联网,解压后约150MB,倍增、博弈、递归、递推、贪心、图论、动归、数论、搜索、数据结构(各种树形)、位运算、随机化、分治、字符串、排序、几何 当然noi的部分高级算法并未涉及,但针对noip是相当全面的!!
代码片段和文件信息
#include
#include
#define infile “dquery.in“
#define outfile “dquery.out“
#define maxn 41000
#define maxlogn 20
struct anedge{
long xydist;
}e[maxn+1];
struct edge2{
long nodedist;
}*g[maxn+1];
struct qqnode{
long numnow;
}zhan[maxn+1];
long degree[maxn+1]distfromroot[maxn+1]level[maxn+1]r[maxn+1]
width[maxn+1]done[maxn+1]xl[maxn*2+10]df[maxn*2+10][maxlogn+1]
nowtopnmnodexnodey;
FILE *fin=fopen(infile“r“)
*fout=fopen(outfile“w“);
void calc_width()
{
long inodeheadtail;
for (i=1; i<=n; i++)
done[i]=0;
head=0;
tail=1;
width[1]=1;
done[1]=1;
distfromroot[1]=0;
level[1]=1;
while (head {
head++;
node=width[head];
for (i=1; i<=degree[node]; i++)
if (done[g[node][i].node]==0)
{
tail++;
width[tail]=g[node][i].node;
done[g[node][i].node]=1;
distfromroot[width[tail]]=distfromroot[node]+g[node][i].dist;
level[width[tail]]=level[node]+1;
}
}
}
void dfs()
{
long itop;
top=1;
zhan[top].num=1;
zhan[top].now=1;
done[1]=1;
while (top>0)
{
nowtop++;
xl[nowtop]=zhan[top].num;
while ((zhan[top].now<=degree[zhan[top].num])&&(done[g[zhan[top].num][zhan[top].now].node]==1))
zhan[top].now++;
if (zhan[top].now<=degree[zhan[top].num])
{
done[g[zhan[top].num][zhan[top].now].node]=1;
zhan[top+1].num=g[zhan[top].num][zhan[top].now].node;
zhan[top+1].now=1;
zhan[top].now++;
top++;
}
while ((top>=1)&&(zhan[top].now>degree[zhan[top].num]))
top--;
}
}
long min(long along b)
{
if (level[xl[a]] return(a);
else return(b);
}
void calc_df()
{
long iji2step;
for (i=1; i<=nowtop; i++)
df[i][0]=i;
j=0;
step=1;
while (step<=n)
{
j++;
step*=2;
for (i=1; i<=nowtop; i++)
{
i2=i+step/2; //important!!!
if (i2>nowtop)
df[i][j]=df[i][j-1];
else df[i][j]=min(df[i][j-1]df[i2][j-1]);
}
}
}
void init()
{
long ixydist;
char c;
fscanf(fin“%ld%ld“&n&m);
for (i=1; i<=n; i++)
degree[i]=0;
for (i=1; i<=m; i++)
{
fscanf(fin“%ld%ld%ld“&e[i].x&e[i].y&e[i].dist);
while (1)
{
fscanf(fin“%c“&c);
if (c!=‘ ‘)
break;
}
degree[e[i].x]++;
degree[e[i].y]++;
}
for (i=1; i<=n; i++)
{
g[i]=new (struct edge2 [degree[i]+2]);
g[i][0].node=0;
}
for (i=1; i<=m; i++)
{
x=e[i].x;
y=e[i].y;
dist=e[i].dist;
g[x][0].node++;
g[x][g[x][0].node].node=y;
g[x][g[x][0].node].dist=dist;
g[y][0].node++;
g[y][g[y][0].node].node=x;
g[y][g[y][0].node].dist=dist;
}
calc_width();
nowtop=0;
for (i=1; i<=n; i++)
done[i]=0;
dfs();
for (i=1; i<=n; i++)
r[i]=0;
for (i=1; i<=nowtop; i++)
if (r[xl[i]]==0)
r[xl[i]]=i;
calc_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2002-01-08 07:50 文档\
文件 275314 2010-10-04 00:00 文档\NOIP实用算法.pdf
目录 0 2002-01-08 07:50 文档\位运算\
目录 0 2002-01-08 07:50 文档\位运算\位运算简介及实用技巧\
文件 47104 2008-03-02 23:39 文档\位运算\位运算简介及实用技巧\基础篇.doc
文件 77824 2008-01-27 18:47 文档\位运算\位运算简介及实用技巧\实战篇.doc
文件 60416 2008-01-27 18:46 文档\位运算\位运算简介及实用技巧\进阶篇.doc
目录 0 2002-01-08 07:50 文档\倍增法\
目录 0 2002-01-08 07:50 文档\倍增法\倍增思想的研究\
目录 0 2002-01-08 07:50 文档\倍增法\倍增思想的研究\problem\
目录 0 2002-01-08 07:50 文档\倍增法\倍增思想的研究\problem\197.files\
文件 7611 2004-01-14 18:02 文档\倍增法\倍增思想的研究\problem\197.files\p197-01.gif
文件 2101 2004-01-14 18:02 文档\倍增法\倍增思想的研究\problem\197.files\st
文件 4147 2004-02-14 11:33 文档\倍增法\倍增思想的研究\problem\197.htm
文件 24576 2004-04-19 22:38 文档\倍增法\倍增思想的研究\problem\fmf.doc
目录 0 2002-01-08 07:50 文档\倍增法\倍增思想的研究\problem\Green.files\
文件 4314 2004-02-14 14:13 文档\倍增法\倍增思想的研究\problem\Green.files\bg4.jpg
文件 36160 2004-02-14 14:13 文档\倍增法\倍增思想的研究\problem\Green.files\cow1.jpg
文件 9417 2004-02-14 14:23 文档\倍增法\倍增思想的研究\problem\Green.htm
文件 640 2004-04-30 09:39 文档\倍增法\倍增思想的研究\problem\各题说明.txt
目录 0 2002-01-08 07:50 文档\倍增法\倍增思想的研究\program\
文件 2516 2003-02-15 17:37 文档\倍增法\倍增思想的研究\program\197.CPP
文件 3612 2004-03-20 21:55 文档\倍增法\倍增思想的研究\program\dquery.cpp
文件 1251 2004-04-19 17:57 文档\倍增法\倍增思想的研究\program\fib.cpp
文件 5911 2004-03-27 15:08 文档\倍增法\倍增思想的研究\program\fmf.cpp
文件 1383 2004-04-19 17:41 文档\倍增法\倍增思想的研究\program\power.cpp
文件 1154 2004-04-19 22:12 文档\倍增法\倍增思想的研究\program\rmq.cpp
文件 248 2004-04-19 22:40 文档\倍增法\倍增思想的研究\program\各程序说明.txt
文件 142336 2004-04-30 09:38 文档\倍增法\倍增思想的研究\倍增思想的研究.doc
文件 91 2004-04-16 15:28 文档\倍增法\倍增思想的研究\说明.txt
文件 168960 2002-09-04 21:28 文档\分支高精度.ppt
............此处省略1004个文件信息
相关资源
- 数据挖掘:理论与算法自主模式-清华
- 算法竞赛入门经典(第二版)pdf源码
- 中科大-算法分析与设计课-课程ppt/考
- 《编程之美》PDF含源码,详细书签
- 变频调速SVPWM技术的原理、算法与应用
- 稀疏字典表示、OMP算法高光谱图像分
- 数值分析与算法 喻文健著
- BP神经网络分类算法
- 数学建模算法与程序司守奎教材+习题
- 基于stm32f407飞控+stm32f103遥控sxy飞行器
- 算法图解pdf +mobi两本Aditya Bhargava+算法
- GMT 0015-2012 基于SM2密码算法的数字证书
- 小甲鱼数据结构与算法课件与源码全
- 算法艺术与信息学竞赛pdf中文版
- 板式家具下料算法
- 遗传算法经典论文
- Algorithm Design算法设计习题答案2
- 手势识别代码
- STM32F407上实现Modbus协议,包括多种C
- 推荐系统实践 pdf 项亮
- 蚁群算法原理和应用段海滨版.pdf
- 算法考卷all.pdf
- 利用Opencv3.2中的DPM模块,实现DPM算法
- PLC编程理论、算法及技巧.pdf )
- 随机算法中文版[MR95].pdf
- Introduction.to.Algorithms.-.算法导论(中文
- 算法图解英文原版
- 配送车辆优化调度模型与算法
- 超详细机器学习12种常用算法PPT
- 步进电机S型T梯形曲线和国外流行的
评论
共有 条评论