📄 no3.htm
字号:
<html xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:w="urn:schemas-microsoft-com:office:word"xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=GB2312"><meta name=ProgId content=Word.Document><meta name=Generator content="Microsoft Word 9"><meta name=Originator content="Microsoft Word 9"><link rel=File-List href="./no3.files/filelist.xml"><title> NOI'96-97 天津队组队选拔赛试题及分析</title><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>lixuewu</o:Author> <o:LastAuthor>a</o:LastAuthor> <o:Revision>2</o:Revision> <o:TotalTime>2</o:TotalTime> <o:Created>1996-12-31T17:58:00Z</o:Created> <o:LastSaved>1996-12-31T17:58:00Z</o:LastSaved> <o:Pages>15</o:Pages> <o:Words>3255</o:Words> <o:Characters>18557</o:Characters> <o:Company>aaa</o:Company> <o:Lines>154</o:Lines> <o:Paragraphs>37</o:Paragraphs> <o:CharactersWithSpaces>22789</o:CharactersWithSpaces> <o:Version>9.2812</o:Version> </o:DocumentProperties></xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:PunctuationKerning/> <w:DrawingGridHorizontalSpacing>5.25 磅</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>7.15 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:UseFELayout/> </w:Compatibility> </w:WordDocument></xml><![endif]--><style><!-- /* Font Definitions */@font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;}@font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:1 135135232 16 0 262144 0;} /* Style Definitions */p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;}p.MsoPlainText, li.MsoPlainText, div.MsoPlainText {margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; font-family:宋体; mso-hansi-font-family:"Courier New"; mso-bidi-font-family:"Courier New"; mso-font-kerning:1.0pt;} /* Page Definitions */@page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no; mso-gutter-position:top;}@page Section1 {size:21.0cm 842.0pt; margin:79.4pt 87.7pt 70.9pt 87.65pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0;}div.Section1 {page:Section1;}--></style></head><body lang=ZH-CN style='tab-interval:21.0pt;text-justify-trim:punctuation' bgcolor="#e8ffe8"><div class=Section1><p class=MsoPlainText><span lang=EN-US><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>NOI'96-97 天津队组队选拔赛试题及分析</span></p><p class=MsoPlainText style='text-indent:42.0pt;mso-char-indent-count:4.0;mso-char-indent-size:10.5pt'><span lang=EN-US>(原载:信息学奥林匹克,1999,1)</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>天津师范大学计算机科学系<span style="mso-spacerun: yes"> </span>李学武</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span></span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>为了组建参加 NOI'96 及 NOI'97 比赛的天津代表队,天津市曾于1996年5月和12月</span></p><p class=MsoPlainText>组织了两届选拔赛<span lang=EN-US>,比赛收到了令人满意的效果,水平较高的两三位选手的成绩明显高于其他</span></p><p class=MsoPlainText>选手<span lang=EN-US>,组队人选无可争议.下面给出的试题,分析及参考程序都是笔者完成的.限于笔者的水平</span></p><p class=MsoPlainText>和精力<span lang=EN-US>,几乎每一个程序及算法都有进一步优化的余地.读者不妨尝试一下,或许从中会有所</span></p><p class=MsoPlainText>收益<span lang=EN-US>.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span></span></p><p class=MsoPlainText>一<span lang=EN-US>. 工作安排问题 (第一届选拔赛第一题)</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>【试题】 现有 N (N≤8) 件工作, 分别由 N 个人完成, 每人都完成一件,且只完成一 件, </span></p><p class=MsoPlainText>每人完成不同工作的时间不同<span lang=EN-US>. 试设计一种分配工作方案, 使完成 N 件工作所需的总时间</span></p><p class=MsoPlainText>最少<span lang=EN-US>.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>原始数据由文本文件 EXAM1.TXT 给出, 其格式如下:</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>第 1 行:<spanstyle="mso-spacerun: yes"> </span>工作任务数(N)</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>第 2 -- N+1 行:第 i+1 行为第 i 个人完成各件工作所需的时间. 以</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>上各数均为不超过 1000 的正整数.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>计算结果可直接在屏幕上输出: 第一行为工作分配方案, 共 N组, 每组数</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>据的形式为 a-b, 其中 a 为工作人员编号, b 为他应完成的工作序号.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>例: 设 EXAM1.TXT 的数据为:</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>4</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>2<spanstyle="mso-spacerun: yes"> </span>15<span style="mso-spacerun:yes"> </span>13<span style="mso-spacerun: yes"> </span>4</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>10<spanstyle="mso-spacerun: yes"> </span>4<span style="mso-spacerun: yes"> </span>14<span style="mso-spacerun: yes"> </span>15</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>9<spanstyle="mso-spacerun: yes"> </span>14<span style="mso-spacerun:yes"> </span>16<span style="mso-spacerun: yes"> </span>13</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>7<spanstyle="mso-spacerun: yes"> </span>8<span style="mso-spacerun: yes"> </span>11<span style="mso-spacerun: yes"> </span>9</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>对此, 一个正确的输出可以是</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>1-4, 2-2, 3-1, 4-3</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>TOTAL=28</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes"> </span>【分析】 此题为常规题,以避免选手分数太低,分析及程序部分从略.</span></p><p class=MsoPlainText><span lang=EN-US><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p><p class=MsoPlainText>二<span lang=EN-US>. 圆盘问题 (第一届选拔赛第二题)</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>【试题】从左向右依次安放 4 根细柱 A,B,C,D. 在 A 上套有N (N≤20) 个直</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>径相同的圆盘, 从下到上依次用连续的小写字母 a,b,c,...编号, 将这些圆盘经过</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>B, C 单向地移入 D (即不允许从右向左移动). 圆盘可在 B,C 中暂存. 从键</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>盘输入 N, 及前 N 个小写字母的一个排列, 它表示最后在 D 盘上形成的一个</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>从下到上的圆盘序列. 请用文本文件 ANS2.TXT 输出形成这一排列的操作过程.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>该文件的每一行为一个形如 "k M L" 的字母序列, 其中 k 为圆盘编号, M 为</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>k 盘原先的柱号, L 为新柱号. 或者直接在屏幕上输出"No", 表示不能生成这</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>种排列.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span></span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>例:<span style="mso-spacerun:yes"> </span><span style="mso-spacerun: yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>键盘输入:<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun: yes"> </span>┃<spanstyle="mso-spacerun: yes"> </span>┃<spanstyle="mso-spacerun: yes"> </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>3<spanstyle="mso-spacerun:yes"> </span>d<span style="mso-spacerun: yes"> </span>━╋━<spanstyle="mso-spacerun: yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>acb<spanstyle="mso-spacerun:yes"> </span>c<span style="mso-spacerun: yes"> </span>━╋━<spanstyle="mso-spacerun: yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>则一个正确的输出文件<span style="mso-spacerun:yes"> </span>b<spanstyle="mso-spacerun: yes"> </span>━╋━<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes"> </span>可以是:<span style="mso-spacerun:yes"> </span>a<span style="mso-spacerun: yes"> </span>━╋━<spanstyle="mso-spacerun: yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃<span style="mso-spacerun:yes"> </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes"> </span>c<span style="mso-spacerun:yes"> </span>A<span style="mso-spacerun: yes"> </span>B<spanstyle="mso-spacerun:yes"> </span>━━┻━━━┻━━━┻━━━┻━
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -