ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:19.89KB ,
资源ID:20468749      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20468749.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法实习报告Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法实习报告Word文件下载.docx

1、Status TopologicalSort(ALGraph G) FindInDegree(G,indegree); InitStack(S); for(i=0;inextarc) k=p-adjvex;(-indegree(k) push(S,K); if(countG.vexnum) return ERROR; else return OK;迪杰斯拉特(Dijkstra)算法: 该算法提出了一个按路径递增的顺序产生最短路径的算法。首先引入一个辅助向量D,它的分量D(i)表示当前所有找到的从始点V到每个终点Vi的最短路径的长度。其初态为:若从V到Vi有弧,则D(i)为弧上权,否则为无穷大;

2、显然,长度为 D(j)=MinD(i)| Vi V的路径是从V出发的最短一条路径,此路径为(V, Vj )。网络的可靠性时间限制:3000 ms | 内存限制:65535 KB难度:3描述A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商。它将提供先进的网络协作技术,展示其”智能+互联“的生活概念,同时为参观者提供高品质的个人体验和互动,以”信息通信,尽情城市梦想”为主题贯穿。借助奇幻的剧场大屏幕和特效,展现信息通信技术的应用前景,通过生动形象的故事,向观众展示沟通无限制的未来社会前景。为此,A公司为世博园的N个区域建立了视频通信系统,其中每个区域建立一个基站,编号依次为

3、1,2,3.,N。通过基站之间的通信线路为各区域的参观者提供视频服务。已知在各基站之间已铺设了一些光纤通讯线路,这些线路覆盖了所有的区域,即任意两个区域都可以进行视频传递。但为了节约成本开支,目前只铺设了N-1条线路,同时为了减轻各基站的信息传递负载,每个基站最多有三条光纤通讯线路与之连接。但在通信系统试运行期间,A公司发现当某个基站发生故障时,会导致其它区域之间无法进行信息传递。为了提高该通信网络的可靠性,A公司准备在基站之间再新铺设一些光纤线路,使得任意一个基站故障后,其它基站之间仍然可以通讯。由于铺设线路的成本昂贵,A公司希望新增设的光纤线路越少越好。A公司请求Dr. Kong来完成这个

4、任务输入有多组测试数据,以EOF为结束标志。第一行: N 表示有N个基站接下来有N-1行:X Y 表示第X个基站与第Y个基站直连1=N=10000输出输出一个整数,表示至少需新铺设的光纤线路数样例输入81 33 25 35 4 5 62 72 8样例输出#include#include cstringusing namespace std;#define max 10001 int resultmax;int main() int n,i,a,b; while(scanf(%d,&n)!=EOF) memset(result,0,sizeof(result);n-1;i+) scanf(%d%

5、da,&b); resulta+; resultb+; int sum=0;=n; if(resulti=1) sum+; printf(%dn,sum%2=0?sum/2:(sum/2+1); return 0; 回溯法:实际上是一种搜索问题的解的一种方法。所采用的方法一般为深度优先搜索法,所搜索的路径一般是沿树形结构进行搜索。在搜索过程中,首先会判断所搜索的树结点是否包含问题的解,如果肯定不包含,则不再搜索以该结点为根的树结点,而向其祖先结点回溯。否则进入该子树,继续按深度优先策略搜索。1)递归回溯 利用递归算法对树进行深度遍历,并在遍历过程中不断地判断当前搜索的结点是否符合搜索条件,如果

6、符合继续进行深度遍历,否则剪去该分支,搜索后续分支。2)迭代回溯 采用树的非递归深度优先遍历方法也可实现回溯算法。非递归算法实际上是用循环来取代递归进行回溯。装载问题 有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且wi=C1+C2, 其中1=i=n。问是否可以找到一种装载方法是的这n个集装箱可以装载到这2艘轮船上。装载问题是一个NP问题。在该问题中,可以采用下面的策略: (1)首先尽可能的将第一艘轮船装满。 (2)看剩余的货物能否装入第2艘船。 为什么可采用上述策略呢?可以证明! 显然,对于策略(1)需要去搜索一些货物,使其货物重量尽可能的接近于第一艘轮

7、船的装载量。这个搜索策略当然可采用回溯法实现。/ ModifyMaxLoading.cpp : 定义控制台应用程序的入口点。/#include stdafx.htemplate Type MaxLoading(Type w,Type c, int n);class Loading friend Type MaxLoading(Type , Type, int);public: void Backtrack(int i); int n; /集装箱数量 /w-集装箱重量数组;c-第一艘轮船的载重量;cw-当前载重量;bestw-当前最优载重量 Type *w,c,cw,bestw; /剩余集装箱重

8、量 Type r;int main() int *w,c,n,bestw,tc, Maxw=0; /输入必要的数据 coutn; w=new intn;Please input the weight of each container: for(int i=1;i+) cinwi; Maxw+=wi;Please input the Maximum weight for the first ship:c;Please input the Maximum weight for the second ship:tc; /调用函数实现回溯法搜索是否可以以最大限度的形式装载集装箱到第一艘船 bestw

9、=MaxLoading(w,c,n); /判断第2艘船是否可以装载下剩余的集装箱 if(Maxw-bestwtc) coutthe two ship can load all the container:endl; elsethe two ship cannt load all the containervoid Loading :Backtrack(int i) /如果已到叶子结点 if(in) if(cwbestw) bestw=cw; return; /搜索子树,减去第i个集装箱的重量为剩余集装箱重量 r-=wi; /访问左子树 if(cw+wi当前已求的的最优解,则访问右子树 if(c

10、w+rbestw) Backtrack(i+1); /因为是访问右子树,因此第i个集装箱并不装载到轮船上 r+=wi;Type MaxLoading(Type w,Type c, int n) Loading 当前解 bestx-当前最优解 int *x,*bestx; int *w,c,n,bestw,tc, Maxw=0,*bestx; w=new intn+1; bestx=new int n+1; bestw=MaxLoading(w,c,n,bestx);bestw) /如果当前解是目前所找到的最优解,将当前解作为最优解保存到bestx中 for(int j=1;jj+) bestx

11、j=xj; bestw=cw; /用1表示第i个结点是被选中的结点 xi=1; /该结点未被选中 xi=0; /因为是访问右子树,因此第i个集装箱并不装载到轮船上Type MaxLoading(Type w,Type c, int n,int bestx) X.bestx=bestx; /分配n+1个空间用于存储每个集装箱是否被选中的标志 X.x=new intn+1; delete X.x;感想: 在这短暂而又漫长的二十天实习中,我们在相同的兴趣下一起训练,一起A题,一起学习,在这当中我们学到了很多,也提高了很多。在实习过程中,我认识了许多以前很少听说和接触的算法,虽然还不是很深透的理解,但是在不断地钻研和请教中编程能力的确有了很大的提高。在编程的时候,面对每个问题都需要自己想出合适的思路和算法,在无数次的wrong answer后看到令你欣喜若狂的accepted,那种心情简直兴奋的无法形容。同时以小组的形式做题更增强了我的团队合作能力和组织能力,团队合作总是比孤军奋战强。看到同伴的努力自己自然而然地积极起来,看到同伴提交的题目通过后自然增强了团队的自信心。通过团队合作获得的胜利喜悦之情无疑是这个夏日里最凉爽的清泉。在这里,我也要感谢各位一起集训的ACM校队的大神们给我们仔细地讲解题目,在QQ群里不断更新,很多都是有用的信息。这次实习是人生中一大宝贵财富。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1