实验项目:ACM程序设计基础(6)
实验目的:掌握C++程序设计基础。
实验要求:使用VC++6.0实现实验要求。
实验内容:
1.猜牌游戏问题,请看简单回溯——猜牌游戏(提示:可以参考实验六的最后一题Crashing
Balloon)。
2. 给定n个作业的集合Jn,每一个作业Ji都有两项任务分别在2台机器上完成。每个作业必须先由机器1处理,然后再由机器2处理。求所有作业在机器2上完成处理的时间和最少,并输出最佳调度方案。如:
|
机器1 |
机器2 |
作业1 |
2 |
1 |
作业2 |
3 |
1 |
作业3 |
2 |
3 |
最佳调度方案为:1 3 2,其完成时间为18。
3. 电路布线问题,请看简单动态规划——电路布线。
1.猜牌游戏问题,请看简单回溯——猜牌游戏。
2.最佳调度方案
思路是通过全排列搜索所有排序情况,并计算出结果,与当前最小值比较,最终得出答案。
难点是完成时间的计算,注意题目要求计算的是在机器二上的完成时间之和,而非所用时间之和,以上述数据为例:
|
机器1 |
机器2 |
1 |
作业1(2小时) |
|
2 |
|
3 |
作业3(2小时) |
作业1(1小时) |
4 |
|
5 |
作业2(3小时) |
作业3(3小时) |
6 |
7 |
8 |
|
作业2(1小时) |
可以看出3个作业的完成时间分别是3,7,8,因此完成时间之和为3 + 7 + 8 = 18。
而代码我是这么实现的:设两个变量t1与t2,分别表示当前作业在机器1与机器2上的完成时间,则:
- 当前作业在机器1上的处理只需等上一作业在机器1上完成,即t1 += 当前作业在机器1上所需的处理时间
- 当前作业在机器2上的处理必须等当前作业在机器1上完成且上一作业在机器2上完成之后开始,即:t2 = max(t1, t2) + 当前作业在机器2上所需的处理时间
代码如下:
3. 电路布线问题,请看简单动态规划——电路布线。
=======================签 名 档=======================
原文地址(我的博客):http://lanfei.sinaapp.com/2012/06/1347.html
欢迎访问交流,至于我为什么要多弄一个博客,因为我热爱前端,热爱网页,我更希望有一个更加自由、真正属于我自己的小站,或许并不是那么有名气,但至少能够让我为了它而加倍努力。。
=======================签 名 档=======================
分享到:
相关推荐
### ACM程序设计基础知识点 #### 一、ACM竞赛概览 - **组织机构与活动**: 本课程由东北林业大学陈宇老师负责,通过邮箱Lg_chenyu@yahoo.com.cn进行联系。课程的主要目的是介绍ACM程序设计的基础概念及入门技巧。 - ...
这个“ACM国际大学生程序设计竞赛基础知识.rar”压缩包文件包含了一份详细的学习资源,主要针对准备参加此类竞赛的学生。 ACM竞赛的基础知识涵盖以下几个核心领域: 1. **算法**:这是竞赛的核心,包括排序算法...
二、程序设计基础 参与ACM竞赛,扎实的编程基础是必不可少的。这包括对各种编程语言的基本语法的掌握,如变量、控制流、函数、类等;对数据结构的理解,如数组、链表、栈、队列、树、图等;以及对算法的熟悉,如排序...
《ACM国际大学生程序设计竞赛:知识与入门》是一本专为有志于参与或提升在ACM(Association for Computing Machinery)国际大学生程序设计竞赛能力的学生所编写的指南。这本书全面覆盖了竞赛所需的关键知识领域,...
总的来说,"ACM程序设计题目"提供了一个实践和提升编程技巧的平台,通过反复练习,参赛者可以不断提高自己的算法思维,为实际问题解决打下坚实基础。无论你是准备参加ACM竞赛,还是单纯对算法有兴趣,这个离线题库都...
### ACM程序设计指导知识点解析 #### 一、国际大学生程序设计竞赛(ACM) 国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ICPC)是世界上公认的规模最大、水平最高的全球性大学生...
《ACM程序设计竞赛辅导》是一本专门为参与ACM(国际大学生程序设计竞赛)的学生们编写的教材,由资深教练沈云付老师精心撰写。该教材的配套课件全面覆盖了竞赛所需的基础知识和高级技巧,旨在提升参赛者在算法设计、...
标题中的"ACM_OJ_程序设计基础课程资料.rar_ACM_C++_pathon"表明这是一个关于ACM(国际大学生程序设计竞赛)在线判题(Online Judge,简称OJ)的课程资料,主要涵盖C++和Python两种编程语言。这个压缩包可能是为参与...
《ACM程序设计》是一本面向对ACM算法有浓厚兴趣的读者,特别是大学生的电子书籍,它在编程竞赛领域有着很高的价值。ACM国际大学生程序设计竞赛(ICPC,International Collegiate Programming Contest)是全球知名的...
6. 数据结构:链表、栈、队列、树、图等数据结构的理解和实现,是ACM程序设计的基础。 三、ACM训练实践 1. 题目练习:通过刷题网站如UVa、Codeforces等,积累实战经验,提高解题能力。 2. 团队协作:ACM竞赛通常...
《ACM程序设计培训教程》是一本针对初学者的指南,旨在帮助读者深入理解并掌握在ACM(国际大学生程序设计竞赛)中所必需的算法和技术。ACM竞赛不仅是编程技巧的比拼,更是对算法理解和应用能力的考验。本教程通过...
ACM国际大学生程序设计竞赛(ACM-ICPC)是全球计算机科学领域内极具挑战性的竞赛之一。它不仅考验参赛者的算法设计和编程技巧,还涉及到团队合作和时间管理等多方面的综合能力。在这样的背景下,《ACM国际大学生程序...
《ACM程序设计培训教程》是一本专注于训练和提升ACM(国际大学生程序设计竞赛)参赛者编程技能的教程。ACM程序设计竞赛是全球范围内影响力极大的一项赛事,旨在培养大学生的逻辑思维、问题解决和团队协作能力。教程...
首先,在第1章中,作者对ACM程序设计的基本知识做了入门级的介绍,帮助新接触ACM竞赛的学生建立起基础的竞赛概念和编程思维。紧接着第2章深入探讨了C++泛型编程,包括其核心概念如容器、迭代器及常用算法。这一部分...
ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ICPC或ACM-ICPC)是一项全球范围内的编程竞赛,旨在提升大学生的算法设计、问题解决和编程技能。这个比赛通常由多轮区域预选赛...
《ACM国际大学生程序设计竞赛:算法与实现》是由著名计算机科学家俞勇编著的一本经典教程,专门针对ACM/ICPC(国际大学生程序设计竞赛)进行深入讲解。这本书全面覆盖了竞赛所需的各类算法和实际编程技巧,是参赛者...
《acm程序设计》是为编程爱好者精心打造的一本教程,尤其适合那些对算法和ACM国际大学生程序设计竞赛有浓厚兴趣的人群。本书深入浅出地讲解了ACM竞赛中常用的编程技巧和核心算法,旨在提升读者在解决复杂计算问题上...