⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 no3.htm

📁 常用经典算法及讲解
💻 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]>&nbsp;<![endif]><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>天津师范大学计算机科学系<span style="mso-spacerun: yes">&nbsp; </span>李学武</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span></span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p><p class=MsoPlainText>一<span lang=EN-US>. 工作安排问题 (第一届选拔赛第一题)</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>原始数据由文本文件 EXAM1.TXT 给出, 其格式如下:</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>第 1 行:<spanstyle="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>工作任务数(N)</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>第 2 -- N+1 行:第 i+1 行为第 i 个人完成各件工作所需的时间. 以</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>上各数均为不超过 1000 的正整数.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>计算结果可直接在屏幕上输出: 第一行为工作分配方案, 共 N组, 每组数</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>据的形式为 a-b, 其中 a 为工作人员编号, b 为他应完成的工作序号.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>例: 设 EXAM1.TXT 的数据为:</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>4</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>2<spanstyle="mso-spacerun: yes">&nbsp; </span>15<span style="mso-spacerun:yes">&nbsp; </span>13<span style="mso-spacerun: yes">&nbsp; </span>4</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>10<spanstyle="mso-spacerun: yes">&nbsp; </span>4<span style="mso-spacerun: yes">&nbsp;</span>14<span style="mso-spacerun: yes">&nbsp; </span>15</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>9<spanstyle="mso-spacerun: yes">&nbsp; </span>14<span style="mso-spacerun:yes">&nbsp; </span>16<span style="mso-spacerun: yes">&nbsp; </span>13</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>7<spanstyle="mso-spacerun: yes">&nbsp; </span>8<span style="mso-spacerun: yes">&nbsp;</span>11<span style="mso-spacerun: yes">&nbsp; </span>9</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>对此, 一个正确的输出可以是</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>1-4, 2-2, 3-1, 4-3</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>TOTAL=28</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>【分析】 此题为常规题,以避免选手分数太低,分析及程序部分从略.</span></p><p class=MsoPlainText><span lang=EN-US><![if !supportEmptyParas]>&nbsp;<![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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>【试题】从左向右依次安放 4 根细柱 A,B,C,D. 在 A 上套有N (N≤20) 个直</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>径相同的圆盘, 从下到上依次用连续的小写字母 a,b,c,...编号, 将这些圆盘经过</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>B, C 单向地移入 D (即不允许从右向左移动). 圆盘可在 B,C 中暂存. 从键</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>盘输入 N, 及前 N 个小写字母的一个排列, 它表示最后在 D 盘上形成的一个</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>从下到上的圆盘序列. 请用文本文件 ANS2.TXT 输出形成这一排列的操作过程.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>该文件的每一行为一个形如 &quot;k M L&quot; 的字母序列, 其中 k 为圆盘编号, M 为</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>k 盘原先的柱号, L 为新柱号. 或者直接在屏幕上输出&quot;No&quot;, 表示不能生成这</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>种排列.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>例:<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun: yes">&nbsp;</span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>键盘输入:<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>┃<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<spanstyle="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<spanstyle="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>3<spanstyle="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>d<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>━╋━<spanstyle="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>acb<spanstyle="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>c<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>━╋━<spanstyle="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>则一个正确的输出文件<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>b<spanstyle="mso-spacerun: yes">&nbsp;&nbsp; </span>━╋━<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>可以是:<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>a<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>━╋━<spanstyle="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>┃</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>c<span style="mso-spacerun:yes">&nbsp; </span>A<span style="mso-spacerun: yes">&nbsp; </span>B<spanstyle="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>━━┻━━━┻━━━┻━━━┻━

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -