信息學(xué)奧賽重點(diǎn)操作提示_第1頁(yè)
信息學(xué)奧賽重點(diǎn)操作提示_第2頁(yè)
信息學(xué)奧賽重點(diǎn)操作提示_第3頁(yè)
信息學(xué)奧賽重點(diǎn)操作提示_第4頁(yè)
信息學(xué)奧賽重點(diǎn)操作提示_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

信息學(xué)奧賽重點(diǎn)操作提示一、務(wù)必看清參賽手冊(cè)的明確要求。(注意:以下提示參考2018年,如有新的變化則以新規(guī)則為準(zhǔn)).在D盤根目錄下新建考生文件夾:SD-考號(hào)姓名(如:SD-101張三)。.在考生文件夾內(nèi)按照給定的題目名分別新建4個(gè)子文件夾,小寫,文件夾名中無(wú)空格(如:count,sort,sky,winner四個(gè)文件夾)。由于程序所在目錄是不確定的,因此不允許在文件名中含有盤符信息和任何形式的路徑信息。.編輯好的程序源文件小寫命名,擴(kuò)展名.cpp。分別存放在對(duì)應(yīng)的文件夾中,如:count.cpp存放在count文件夾中,sort.cpp存放在sort文件夾中,sky.cpp存放在sky文件夾中,winner.cpp存放在winner文件夾中。最后務(wù)必再將4個(gè)源程序文件復(fù)制粘貼到考生文件夾的桌面。如圖所示:D:\SDT01張三、強(qiáng)調(diào):未按照規(guī)定建立文件夾及子文件夾,文件夾的命名錯(cuò)誤或者提交的源程序沒(méi)有按照規(guī)定存放在相應(yīng)的子文件夾中,都會(huì)導(dǎo)致選手成績(jī)?yōu)?D:\SDT01張三、強(qiáng)調(diào):未按照規(guī)定建立文件夾及子文件夾,文件夾的命名錯(cuò)誤或者提交的源程序沒(méi)有按照規(guī)定存放在相應(yīng)的子文件夾中,都會(huì)導(dǎo)致選手成績(jī)?yōu)?分。count.cppsortsort.cppskyIsky.cppwinnerIwinner.cpp一countxpp—sort.cpp一sky.cpp「winner.cpp.新建源代碼以后先命名及確定存放位置:文件-新建-源代碼;文件-另存為-在彈出窗口確定存放位置及文件名。源文件最好每8-10分鐘存盤一次,防止出現(xiàn)意外。.freopen:文件輸入輸出是非常重要的一部分,一旦寫錯(cuò)一點(diǎn),就會(huì)丟掉該題的全部分?jǐn)?shù)。具體說(shuō):每個(gè)源程序要注意加上一個(gè)頭文件(<cstdio>)和2句話,用于測(cè)評(píng):

111213cout<<c<<endL;111213cout<<c<<endL;urn0;主程序示例freopen("題目名.in","r",stdin);freopen("題目名.out","w",stdout);特別提醒:文件名、文件夾名、輸入輸出不符合要求或缺少測(cè)評(píng)模塊,該題得分為0分。如圖:[*]ccunt.cpp^incLude<iostreani>*ncIude<c5tdi需要加的頭文件usingnamespacestd;intmain()5早(68910115早(68910111213每個(gè)源程序中需要添加的2句話,用于黑箱測(cè)試J'sunt"r隨規(guī)定的題目名而改變.freopen(''count?in"Jr”>stdin);freopen(tJcount.out,r,"w"?stdout);cin?a>>b;c二白十匕;cout?c?endL;return0;>主程序示例.競(jìng)賽結(jié)束前5-10分鐘,一定逐一檢查自己已經(jīng)完成的程序并按照要求存盤。.競(jìng)賽結(jié)束,只打開D盤,不要關(guān)機(jī)。將本人的考生文件夾復(fù)制上傳到指定的FTP服務(wù)器:即:〃10.68.9.xx后,有序退場(chǎng)。(說(shuō)明:即:〃10.68.9.xx為內(nèi)部網(wǎng)服務(wù)器,XX的具體數(shù)值考試現(xiàn)場(chǎng)會(huì)公布,雙擊“我的電腦”,在上面的地址欄輸入ftp:〃及后面的域名即可,打開以后,將考生文件夾整體復(fù)制粘貼到服務(wù)器的頁(yè)面即可。).競(jìng)賽評(píng)測(cè)采用黑箱測(cè)試,只看輸出結(jié)果,不看程序二、得分策略:.考試前,保持好的心態(tài)??荚嚽安灰^(guò)于緊張,可以回憶一下以前考試常用的技巧,易錯(cuò)點(diǎn)和“騙分方法等”.做題時(shí)務(wù)必看清題目,嚴(yán)格按照所要求的格式輸入、輸出。特別審題,一旦審題錯(cuò)誤或者理解錯(cuò)誤就可能造成你花很多時(shí)間寫出來(lái)的程序WA,如果檢查出來(lái)了,你浪費(fèi)的是時(shí)間,如果沒(méi)有發(fā)現(xiàn),你丟掉的是分?jǐn)?shù)和前途。解決方法:寫代碼前先把題讀懂,讀透,想出算法后才開始寫代碼.考慮嚴(yán)謹(jǐn)。這一點(diǎn)也相當(dāng)重要,如果考慮不嚴(yán)謹(jǐn)就可能被特殊數(shù)據(jù)卡分[0,100],而特殊數(shù)據(jù)往往分為極端數(shù)據(jù)和特殊數(shù)據(jù)。極端數(shù)據(jù)會(huì)按數(shù)據(jù)最大范圍來(lái),所以要注意空間是否足夠,int是否會(huì)溢出;特殊數(shù)據(jù)往往是具有特殊情況或性質(zhì)的數(shù)據(jù)往往需要特判。解決方法:先要審題,然后要考慮特殊情況和極端情況.代碼正確。也就是說(shuō),你寫代碼時(shí)要爭(zhēng)取一次寫對(duì)。如果你寫的代碼有bug,那就需要查錯(cuò),而查錯(cuò)需要的時(shí)間在(0,3.5h),考試的時(shí)候花大量時(shí)間查錯(cuò)是不劃算的。解決方法:在想出具體算法后才開始寫代碼。寫代碼的時(shí)候要寫一行,看一行,每寫完一行,就考慮一下是否可能寫錯(cuò)(for循環(huán)邊界,格式控制符,i,j混淆......),還要加強(qiáng)靜態(tài)查錯(cuò)。.第一題一般是送分的,認(rèn)真讀題,別太草率,多想幾遍再動(dòng)手,把重要的地方圈一圈、畫一畫,在調(diào)試程序時(shí)請(qǐng)先使用題目中的示例數(shù)據(jù),然后再自行設(shè)計(jì)多組測(cè)試數(shù)據(jù)進(jìn)行調(diào)試。特別要注意邊界值。.第二題應(yīng)該也不會(huì)有問(wèn)題,前兩道多是模擬、暴力,別想太多但也別太瞧不起前兩題,把所有特殊情況想全,所有題都做完后再回來(lái)檢查一遍,前兩題切不可在30分鐘內(nèi)草草率率的做完,白白丟分.第三題前三年中有兩年是數(shù)學(xué)問(wèn)題,16年是一個(gè)較為簡(jiǎn)單的隊(duì)列模擬,對(duì)于第三題,拿到后想想能不能推出一個(gè)公式來(lái)解決,要把條件都讀清楚,切不可粗心,而想出思路后就要大膽的寫。自己多找一些不同種類的數(shù)據(jù)以免考慮不周,不能的全分。.第四題這幾年好像一直很吊,讀完題后先想一想能用什么方法,如果超過(guò)半個(gè)小時(shí)想不出來(lái)就先寫一個(gè)神之搜索(呵呵),拿到分再說(shuō),當(dāng)然搜索時(shí)多搞剪枝。不過(guò)做完后再想想有沒(méi)有正解(可以單開一個(gè)cpp,寫好后把原來(lái)的覆蓋掉以免正解不正、分也騙不著)。.切記:1)所有題的文件名至少寫的時(shí)候?qū)?遍,檢查時(shí)再對(duì)3遍,查看文件名對(duì)不對(duì),輸入輸出文件名對(duì)不對(duì),在提交程序時(shí)是否將臨時(shí)的〃或{}等注釋符號(hào)去掉了。2)尤其是三四題,除非很確定,否則開long10ng以防存不下。.時(shí)間安排:考試總時(shí)間為3個(gè)半小時(shí),具體時(shí)間安排如下:一二題共40~60min(40min是底線,防止粗心)第三題60min第四題90min.每題有10個(gè)測(cè)試點(diǎn),測(cè)試有嚴(yán)格的時(shí)間和空間限制??臻g復(fù)雜度不能超過(guò)內(nèi)存限制,一般情況下數(shù)組不宜開的過(guò)大。如果開一個(gè)109的數(shù)組,很容易出現(xiàn)內(nèi)存不足的情況,請(qǐng)盡可能優(yōu)化算法。12.關(guān)于騙分:“騙分”當(dāng)然不是靠作弊騙分,是靠“技巧”“騙分”。首先遇到難題時(shí)心態(tài)要穩(wěn)定,先搞定簡(jiǎn)單的題目,最后思考難題。心態(tài)是第一位。如果難題實(shí)在不能解決也不能放棄,雖然寫不出完美的算法,但用數(shù)學(xué)方法解出來(lái)的答案畢竟也許能蒙上幾個(gè),有分總是好的?,F(xiàn)在騙分變得越來(lái)越難,還是通過(guò)實(shí)力做題好。騙分的最高境界就是不騙分?。ㄓ悬c(diǎn)自相矛盾0)常見(jiàn)方法:1)打表,就是研究數(shù)據(jù)的規(guī)律,把各個(gè)情況的答案列舉出來(lái),然后對(duì)應(yīng)輸出來(lái)。對(duì)于某些輸入輸出范圍比較小的題目可以采用。比如:求n!(n<100000).把n=1,2,。。。。時(shí)的階乘結(jié)果用個(gè)數(shù)組存起來(lái)f[1...n]=...o然后輸入n時(shí)直接輸出f[n]。再比如求輸入a,b間質(zhì)數(shù),a,b小于一億,直接做必定超時(shí),這時(shí)就可以先這個(gè)程序打質(zhì)數(shù)表,主要程序就可以直接調(diào)用。2)無(wú)解情況,在很多題目中都有這句話:若無(wú)解,請(qǐng)輸出-1.”看到這句話時(shí),騙分的黃蓊們就欣喜若狂,因?yàn)橐灰粩?shù)據(jù)中必定會(huì)有無(wú)解的情況!那么,只要打出下面這個(gè)程序:cout<<"-1",就能得到10分,甚至20分,30分!3)白送的分?jǐn)?shù),每道題目的后面,都有一組“樣例輸入”和“樣例輸出”,它們的價(jià)值極大,不僅能初步幫你檢驗(yàn)程序的對(duì)錯(cuò)(特別坑的樣例除外),而且,如果你不會(huì)做這道題(這種情況蔚蓊們已經(jīng)司空見(jiàn)慣了),你就可以直接輸出樣例!例如美國(guó)的USACO,它的題目有一個(gè)規(guī)則,就是第一組數(shù)據(jù)必須是樣例。那么,只要你輸出所有的樣例,你就能得到100分(滿分1000分)。4)模擬,就是用計(jì)算機(jī)程序來(lái)模擬實(shí)際的事件,主要可以應(yīng)用在騙高級(jí)數(shù)據(jù)結(jié)構(gòu)題上的分。大牛應(yīng)用數(shù)據(jù)結(jié)構(gòu),我們就用模擬。程序簡(jiǎn)潔明了,并且能圖效騙分。5)輸出隨機(jī)數(shù):這種方法適用于輸出一個(gè)整數(shù)(或判斷是否)的題目中,答案的范圍越小越好。讓老天決定你的得分吧。(曾經(jīng)有人用這個(gè)方法100分的題拿了70分?。。?)以上方法合并使用或許更有效。三、提高組過(guò)來(lái)人信奧經(jīng)驗(yàn)談。.檢查:非常重要,需要綜合上述注意事項(xiàng),以及考試技巧中的對(duì)拍,還有注意檢查你的程序是否在考試指定文件夾里面,名稱是否正確。(對(duì)拍簡(jiǎn)單的說(shuō)就是當(dāng)你寫完一個(gè)題目的程序以后,再寫一個(gè)暴力求解該題目的程序,然后自己生成一些測(cè)試數(shù)據(jù),看同樣的數(shù)據(jù),兩個(gè)程序輸出的結(jié)果是否相同,不同意味著被對(duì)拍的程序有問(wèn)題。以此來(lái)幫助你修改程序,提高通過(guò)率的方法,我們稱為對(duì)拍。)a光檢查算法是否正確,如果算法都不正確,不要慌,再想想,真的不正確那只有重寫b.如果不是算法問(wèn)題,可以采取兩種查錯(cuò)方式:靜態(tài)查錯(cuò),輸出查錯(cuò)所謂靜態(tài)查錯(cuò),就是講代碼用肉眼重新檢查,觀察可能錯(cuò)誤的地方所謂輸出查錯(cuò),就是一步一步輸出中間結(jié)果(也可以用調(diào)試工具),按步驟排查錯(cuò)誤如果使用輸出查錯(cuò)要注意提交之前將輸出中間結(jié)果的語(yǔ)句刪除或注釋掉.防爆(防止爆數(shù)組)NOIP中爆數(shù)組是一件很糟糕的事,爆數(shù)組就0分。解決方法:數(shù)組定義要小于空間限制用:printf("%.3fM\n",(double)sizeof(arr)/(1<<20));查看數(shù)組占用空間大小(單位:M),其中arr表示需要查看的數(shù)組)還要防止數(shù)組開小“防爆”(RE)。注意看清題目數(shù)據(jù)范圍,數(shù)組范圍開小了會(huì)導(dǎo)致數(shù)組越界從而RE.頭文件解決方法:不知道CCF開放萬(wàn)能頭文件的使用沒(méi)有(部分省份以經(jīng)開放),建議不要冒險(xiǎn),建議頭文件不要用#include<bits/stdc++.h>如果不用萬(wàn)能頭文件,那頭文件一定要寫全,缺少必要頭文件就是0分,同時(shí)不要用禁止使用的頭文件(如:windows.h).數(shù)據(jù)類型一定要看題目數(shù)據(jù)范圍,要考慮極端情況int是否足夠。有句話說(shuō)得好:十年競(jìng)賽一場(chǎng)空,沒(méi)寫long10ng見(jiàn)祖宗!不夠時(shí)要考慮(unsigned)longlong甚至高精度還要防止中間結(jié)果溢出?。?!.增加程序的魯棒性魯棒性是什么呢?(魯棒是Robust的音譯,也就是健壯和強(qiáng)壯的意思)你可以把它理解為程序面對(duì)某些極端情況甚至數(shù)據(jù)不符合數(shù)據(jù)范圍下仍然可以不RE彳導(dǎo)出正確答案解決方法:在你時(shí)間做完題后時(shí)間充裕的情況下可以考慮增加程序魯棒性.注意隱性錯(cuò)誤(非常重要)一定要注意以下錯(cuò)誤:a.缺少某些重要頭文件。比如沒(méi)有寫#inc1ude<csdtio>,某些devc++編譯器遇到這種情況不會(huì)報(bào)錯(cuò),而如果你使用了scanf,printf,CCF測(cè)評(píng)你就是0分。我想應(yīng)該是真的吧,我們的教練曾經(jīng)就講述過(guò)這樣的悲劇。b.下標(biāo)越界。這個(gè)錯(cuò)誤非常惱火,因?yàn)樵谧约弘娔X上運(yùn)行,不嚴(yán)重的下標(biāo)越界不會(huì)引起程序RE,而在很多OJ上,下標(biāo)越界就RE,這樣的錯(cuò)誤確實(shí)難以發(fā)現(xiàn)c.中間結(jié)果溢出。如果會(huì)發(fā)生這樣的情況請(qǐng)計(jì)算時(shí)使用強(qiáng)制類型轉(zhuǎn)換d.該用long10ng卻用了int。比如:選擇客棧,如果不分析用了int就會(huì)丟分.時(shí)間復(fù)雜度的選擇根據(jù)每道題數(shù)據(jù)范圍選擇適當(dāng)時(shí)間復(fù)雜度的算法。如:n<=5000,000就應(yīng)該選擇O(n)及以下的算法,O(nlogn)的算法可能會(huì)超時(shí)。如果n<=10八9(如NOIP2017DAY1T1)那就需要O(logn)或0(1)的算法了(推結(jié)論).利用DevC++。如果你的考試環(huán)境使用DevC++那么在工具,編譯選項(xiàng)中將代碼警告選項(xiàng)調(diào)為顯示最多警告信息,幫助你盡可能多的發(fā)現(xiàn)隱性錯(cuò)誤做題心得1.考試中在一定的時(shí)間如果沒(méi)有想出過(guò)全點(diǎn)的算法就抓緊時(shí)間編寫一個(gè)能過(guò)部分點(diǎn)的或可過(guò)樣例的騙分算然N考試應(yīng)該想好了在編程前要想好算法編寫時(shí)要思考宜句是否叁造來(lái)不良的影響口一至考試時(shí)要善于發(fā)現(xiàn)規(guī)律,而且推出某個(gè)規(guī)律時(shí),要$認(rèn)?行軟以保證其正確性.:看題時(shí)一定要仔細(xì)洋司是某些沒(méi)有樣例的題.5一當(dāng)算法正七,程序錯(cuò)吧,暫時(shí)放棄:過(guò)幾天再重打一遍.■考試時(shí)要在■要的,可能出錯(cuò)的1地方目筆劃記,使不該犯的錯(cuò)誤盡可能避免,每次都能發(fā)揮出自己的水平.8.一個(gè)題目下二定就是只有一種算空了能是幾個(gè)算法的受合。9注意題目申,與v圻弋恚的意.臬■,與n所代表的?義^10程序編寫完成時(shí)要注意1拿殊情況和?極端情況£為考慮。|11.在所有題目編完后,要出幾個(gè)極限數(shù)據(jù)判斷是否會(huì)出現(xiàn)加1、215等錯(cuò)誤.12.在遇至數(shù)縉或物?問(wèn)題時(shí)要先把問(wèn)題分析清楚,再編程。13一考試時(shí)想到的思路K思維的歷光要在早稿紙一上記錄丁來(lái).市驗(yàn)證H可行姓包后編程復(fù)雜度、實(shí)現(xiàn)時(shí)間、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論