




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、我看了李學(xué)武教授寫的關(guān)于 NOIP 復(fù)賽的若干問題的思考一文,有很大觸動,深刻感受到市信息學(xué)奧賽基礎(chǔ)薄弱。我從事奧賽培訓(xùn)工作十三年,培訓(xùn)的學(xué)生在全國取得了一些好成績,一塊國際銀牌,四塊奧賽金牌,三塊銀牌,十塊銅牌。我認(rèn)為我有責(zé)任將培訓(xùn)工作介紹給同人和其他學(xué)校的同學(xué),來推動市奧賽的發(fā)展。下面是我寫的今年分區(qū)聯(lián)賽高中組復(fù)賽的解題分析,供大家參考,并懇切希望能與“OIER”交流共勉。南開中學(xué):300100,電子郵箱: 或 tj(.cn )第一題:神經(jīng)網(wǎng)絡(luò)【試題分析】一、題意分析1、任務(wù)描述:從輸入層開始,各節(jié)點(diǎn)按照傳遞公式,一層一層向下傳遞。輸出輸出層中信號大于零的節(jié)點(diǎn)號則輸出 NULL。信號傳遞公
2、式:和信號大小。(節(jié)點(diǎn)由小到大)如果沒有滿足條件的編1)則此節(jié)點(diǎn)不是輸出層;2)再判斷此節(jié)點(diǎn)信號大于零則向下傳遞信號,將指向的節(jié)點(diǎn)入隊(duì)(防止重復(fù)入隊(duì))。再出隊(duì)再傳遞,直至全部出隊(duì)。注意:1)輸入層可以是輸出層。2)信號傳遞公式中只減一次 Ui?!境绦蛳旅媸恰繉W(xué)生同學(xué)寫的程序。NOIP 2003 Problem 1 by Xiao TianTest 1.5 :Program network; ConstInName=network.in;OutName=network.out; MM=100;VarInFile,OutFile:Text; C,U:Array1.MM Of Long; Map:A
3、rray1.MM,1.MM Of LongFlag:Array1.MM,1.MM Of;IsOut:Array1.MM OfQueue:Array1.MM Of Long;N,P,i,1,2,Head,Rear:Long;IsInQueue:Array1.MM OfIsNull:;BeginAssign(InFile,InName); Reset(InFile); ReadLn(InFile,N,P);For i:=1 To N Do ReadLn(InFile,Ci,Ui); FillChar(Flag,SizeOf(Flag),False);For i:=1 To P Do BeginRe
4、ad(InFile,1,2);ReadLn(InFile,Map1,2);Flag1,2:=True;End;Close(InFile);FillChar(IsOut,SizeOf(IsOut),True); FillChar(IsInQueue,SizeOf(IsInQueue),False); Head:=1; Rear:=1;For i:=1 To N Do BeginIf Ci0 Then Begin QueueRear:=i; Inc(Rear); IsInQueuei:=True;EndElse Ci:=-Ui;End;While Head0 Then BeginInc(Ci,Ma
5、pQueueHead,i*CQueueHead);If Not IsInQueuei Then QueueRear:=i; Inc(Rear); IsInQueuei:=True;End;BeginEnd;IsOutQueueHead:=False;End; Inc(Head);End;Assign(OutFile,OutName); Rewrite(OutFile); IsNull:=True;For i:=1 To N DoIf IsOuti ThenIf Ci0 ThenBeginWrin(OutFile,i, ,Ci);IsNull:=False; End;If IsNull Then
6、 WriClose(OutFile);n(OutFile,NULL);End.第二題:推理【試題分析】一、題意分析1、任務(wù)描述:M 個人參加,每人提供一句或多句證言,共P 句證言。其中 N 個人始終說假話,其余的人始終說真話。請你通過證言判斷出誰是罪犯。證言形式如下:中出現(xiàn)的其它話,都不列入邏輯推理的內(nèi)容。2、輸入:第一行有三個整數(shù),M(1M20)、N(1NM)和 P(1P100):的明明的同學(xué)數(shù),N 是其中始終說謊的人數(shù),P 是證人的綜述。M 是參加接下來M 行,每行是明明的一個同學(xué)的名字(英文字母組成,沒有空格,全部大寫)。往后有 P 行,每行開始是某個同學(xué)的名字,緊跟著一個冒號和一個空格
7、,后面是一句,符合前表中所列格式,每行不會好過 250 個字符。輸入中不會出現(xiàn)連續(xù)的兩個空格,而且每行開頭和結(jié)尾也沒有空格。3、輸出:如果你的程序能確定誰是罪犯,則輸出他的名字;如果程序判斷出不止一個人可能是罪犯,則輸出 Cannot Determine;如果程序判斷出沒有人可能成為罪犯,則輸出 Im二、問題分析sible。內(nèi)容含義I am guilty.我是罪犯I am not guilty.我不是罪犯is guilty.是罪犯(表示某個同學(xué)的名字)isnot guilty.不是罪犯Today is.是(表示幾,是 Monday Tuesday Wednesday Thursday Frid
8、ay Saturday Sunday 其中之一)1、根據(jù)題意可知可以利用枚舉法完成。枚舉罪犯和是幾。滿足 N 個人始終說謊話和M-N 個人始終說真話的條件,就可以確定罪犯。2、首先利用字符串操作將證言轉(zhuǎn)化成計(jì)算機(jī)可表示的信息。1)定義 Guilty:Array1.MM,1.MM OfFillChar(Guilty,SizeOf(Guilty),0)eger;-1.1初值為 0Guiltyi,j=-1:表示第 i 個人說第 j 個人不是罪犯Guiltyi,j= 1:表示第i 個人說第 j 個人是罪犯其中包含 Guiltyi,i即第 i 個人說自己是不是罪犯注意:Guilty 不可以自相。2)定義
9、 WhatDay:Array1.MM,1.7 OfFillChar(WhatDay,SizeOf(WhatDay),False);WhatDayi,j:=True:表示第i 個人說過 j 是幾言的人數(shù)。注意:有3、枚舉罪犯和幾,判斷每句證言是真是假,統(tǒng)計(jì)說真可能又說過真話,又說過假話。4、根據(jù)題目要求輸出罪犯或 Cannot Determine 或 Imsible。【程序下面是NOIP 2003Test 0.9Algorithm】學(xué)生同學(xué)寫的程序。Problem 2 by Xiao Tian: Enumerate the guilty and whatthen we can determine
10、 whetherday it is today.each sentence istrueor not.Program logic; ConstInName=logic.in; OutName=logic.out;MM=20;DayS=(is,is,is,is,is,is,ie:Array1.7 Of String Monday. #Tuesday. # Wednesday. # Thursday. # Friday. # Saturday. #nday. #);cImsible=-1;cCannotDetermine=-2;VarInFile,OutFile:Text;M,N,P:eger;N
11、ame:Array1.MM Of String;Guilty:Array1.MM,1.MMWhatDay:Array1.MM,1.7OfOfeger;-1.1;i,j:eger;IsGuilty:Array1.MM OfAns,AnsC:eger;Procedure PrBegin(ID:eger);Assign(OutFile,OutName); Rewrite(OutFile);If ID=cImsible ThenWrin(OutFile,Imsible)Else If ID=cCannotDetermine ThenWriElse Wrin(OutFile,Cannot Determi
12、ne)n(OutFile,NameID);Close(OutFile);Halt;End;Procedure SetGuilty(CurID,NextID,NewValue: BeginIf GuiltyCurID,NextID=0 Then GuiltyCurID,NextID:=NewValueElse If GuiltyCurID,NextIDNewValueeger);ThenPr(cImsible);End;Procedure ReadS Varement;i,j,CurID,NextID:eger;CurStr,CurName:String;BeginFori:=1 To P Do
13、 Begin ReadLn(InFile,CurStr); CurStr:=CurStr+ #;CurName:=Copy(CurStr,1,(:,CurStr)-1);CurStr:=Copy(CurStr,(:,CurStr)+2,255); CurID:=0;For j:=1 To M DoIf CurName=Namej Then Begin CurID:=j;Break;End;If CurID=0 Then Continue;If CurStr=I am guilty. # Then SetGuilty(CurID,CurID,1)ElseIf CurStr=I am not gu
14、ilty. # Then SetGuilty(CurID,CurID,-1)BeginCurName:=Copy(CurStr,1,( ,CurStr)-1);ElseCurStr:=Copy(CurStr,( ,CurStr)+1,255);If CurName=Today Then BeginFor j:=1 To 7 DoIf CurStr=DaySej Then BeginWhatDayCurID,j:=True; Break;End;EndElse BeginNextID:=0;For j:=1 To M DoIf CurName=Namej Then Begin NextID:=j
15、;Break;End;If NextID=0 Then Continue;If CurStr=is guilty. # Then SetGuilty(CurID,NextID,1)Else If CurStr=is not guilty. #SetGuilty(CurID,NextID,-1);ThenEnd;End;End;End;Function Check(CurGuilty,CurDay: VarSayT,SayF:Array1.MM Ofeger):;i,j,TCount,FCount:eger;BeginFillChar(SayT,SizeOf(SayT),False); Fill
16、Char(SayF,SizeOf(SayF),False); For i:=1 To M Do BeginIf Guiltyi,CurGuilty=1 Then SayTi:=TrueElse If Guiltyi,CurGuilty=-1 SayFi:=True;End;For i:=1 To M Do For j:=1 To M DoIf jCurGuilty Then Begin If Guiltyi,j=1 Then SayFi:=TrueElse If Guiltyi,j=-1 Then SayTi:=True;End;For i:=1 To M DoThenIf WhatDayi,
17、CurDay Then SayTi:=True; For i:=1 To M DoFor j:=1 To 7 DoIf jCurDay ThenIf WhatDayi,j Then SayFi:=True; For i:=1 To M DoIf SayTi And SayFi Then Begin Check:=False;Exit;End;TCount:=0; FCount:=0; For i:=1 To M Do BeginIf SayTi Then Inc(TCount); If SayFi Then Inc(FCount);End;If (FCountN) Or (M-TCount1
18、Then(cCannotDetermine) (Ans);End.第三題:加分二叉樹【試題分析】一、題意分析1、任務(wù)描述:在中序遍歷為(1,2,3,n)的各種二叉樹中,選出加分最高的一棵二叉樹,輸出最高加分和對此二叉樹的前序遍歷。加分規(guī)則:任意棵subtree(也包含 tree 本身)的加分計(jì)算方法如下:subtree 的若某個樹的加分*subtree 的右的加分+subtree 的根的分?jǐn)?shù)為空,規(guī)定其加分為 1,葉子的加分就是葉節(jié)點(diǎn)本身的分?jǐn)?shù),不考慮它的空。2、輸入:節(jié)點(diǎn)數(shù)和每個節(jié)點(diǎn)的分值。(n30、分值y thenx=y thenbegbeg y doaxx,y:=1;exit;end;a
19、xx,y:=ax;exit;end;for i:=x tobeginifif ifmaxx,i-1=0 then try(x,i-1);maxi+1,y=0 then try(i+1,y); maxx,ymaxx,i-1*maxi+1,y+ai thenbeginmaxx,y:=maxx,i-1*maxi+1,y+ai;wayx,y:=i;end;end;end;procedure output(x,y:eger); beginwrite(f,wayx,y, );if x=wayx,y-1 then write(f,x, )else if xwayx,y-1 then output(x,wayx,y-1); if wayx,y+1=y then write(f,y, )else if wayx,y+1shorteb1+1) and (shorteb1=a-1) Then Begin root
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公自動化與醫(yī)療信息安全的關(guān)系研究
- 以用戶為中心的創(chuàng)意產(chǎn)業(yè)與區(qū)塊鏈版權(quán)結(jié)合之道
- 區(qū)塊鏈技術(shù)革新醫(yī)療數(shù)據(jù)共享的密鑰
- 辦公空間中的醫(yī)療品牌建設(shè)與信任文化建設(shè)
- 醫(yī)療行業(yè)中的商業(yè)模式創(chuàng)新與機(jī)遇探索
- 冀教版數(shù)學(xué)四年級下冊-分?jǐn)?shù)的意義教學(xué)設(shè)計(jì)
- 醫(yī)療教育中的倫理議題溶栓治療案例教學(xué)
- AI賦能智慧辦公推動健康監(jiān)測智能化發(fā)展
- 區(qū)塊鏈技術(shù)在實(shí)體產(chǎn)業(yè)的應(yīng)用與前景分析
- 腹主動脈腔靜脈瘺的臨床護(hù)理
- 2023年南京大學(xué)校聘崗位招聘筆試真題
- 魏晉南北朝課件好看
- UL1557標(biāo)準(zhǔn)中文版-2018半導(dǎo)體UL中文版標(biāo)準(zhǔn)
- 《區(qū)域經(jīng)濟(jì)學(xué)講》課件
- 尼康D5200說明書簡體中文
- 4.1 樹與二叉樹(教學(xué)課件)-高中《信息技術(shù)》選修1數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)同步高效課堂(浙教版)
- GB/T 2982-2024工業(yè)車輛充氣輪胎規(guī)格、尺寸、氣壓與負(fù)荷
- 《現(xiàn)代企業(yè)管理學(xué)》本科教材
- 光伏組件維修合同范本
- 工業(yè)園區(qū)消防安全管理制度
- 2024年福建省公務(wù)員錄用考試《行測》真題及答案解析
評論
0/150
提交評論