日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何出(改编)一道ACM算法题?

發布時間:2024/4/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何出(改编)一道ACM算法题? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文背景

本人算法能力一般,但是為省賽和區域賽網絡賽出過幾道題,總結了一些自己的經驗,希望與大家分享。本文不涉及具體的算法題,都是一些理論性的想法和一些建議。

題源

如果你能在沒有題源的情況下自己想出一道新的題目,想必也很難看到這篇文章了。題源是出題的第一步,相信到了需要出題的地步,正在看這篇博客的你一定有自己熟悉的刷題網站,而這個網站可以作為你的題源,因為熟悉。本人推薦兩個題源網站:

英文題源網站 Codeforce

中文題源網站 51nod

拿到的題源一定要確保自己能夠寫出所有解法,可能題目有O(n^2),O(nlog(n)),O(n)三種解法,如果有的話這三種解法你都要弄會,至少看了別人的答案后自己能夠完全透徹理解。

一道題有如下幾個組成部分,而作為出題者,關心的不只這幾部分:

  • 題目名。根據出題要求,可以英文或者中文。
  • 復雜度要求。時間空間復雜度要求,一般時間復雜度更為重要。
  • 題目描述。也可稱為題面或題意,一般會有一個故事來描述情形;也可沒有故事,用抽象的數學圖形或者操作步驟來描述題目。
  • 輸入、輸出格式。一般是輸入占幾行、輸出占幾行,輸入哪些數據等的描述。
  • 輸入、輸出樣例。
  • 題目提示Notes。一般是關于樣例的解釋,或者特殊格式出題的提示。Notes部分也可省略。
  • 注意:你可能讀到一半就去出題了,所以我打算將注意事項預先寫在這里。即:你出好的題目一定要保證題目名、題目描述、輸入、輸出等在百度、谷歌等常用瀏覽器中都搜不到出題用的題源或者類似的題目。

    題意改編

    關于題意改編,也就是題目描述部分,以下提供四種策略:

  • 具體具體化。(描述對象轉移)題目可能有具體的某個人或者某件事情,進行某種操作,你可以將這個具體事件或具體的人,轉移到最近發生的一些事情,或者你們同學比較熟悉的東西。例如:以你們協會或者小組或者某個老師作為題目的描述對象,這樣更能增加題目的趣味性。
  • 具體抽象化。如果你嫌轉移描述對象比較麻煩,你可以將題目抽象為某個抽象地數學模型,圖形的排列,碰撞,走迷宮等,直接用數學模型來描述。
  • 抽象抽象化。也是采用描述對象轉移的方法,你可以將某個數學模型,轉移到另一個數學模型場景。
  • 抽象具體化。根據原先抽象加以具體描述。如果原先是一道水題,你可以將這道題改編成英文閱讀理解題,不要忘記英文閱讀也是ACM算法競賽的一部分,讀懂題目是做題的前置條件。
  • 輸入輸出改編

  • 增加題源輸入的前置條件,你可以將輸入改變成另一組和題源輸入相關的輸入,來增加題目難度。比如,題源輸入的是排序好的數字,你可以將其輸入改成亂序。
  • 減少題源輸入的前置條件,直接輸入原題處理后出來的數據,將其作為新題的輸入。
  • 針對輸出也有以上兩種情況,分別對應增加減少難度,不再贅述。
  • 輸入輸出還可以從格式角度改編,修改某些條件后輸出可以由【模式一】(輸入->輸出->輸入->輸出,循環多次)變成【模式二】(輸入->輸出,所有數據必須一次輸入或輸出,意味著要增加存儲或者增加處理步驟)。當然這個操作也可逆。
  • 復雜度改編

  • 修改復雜度的要求,卡掉復雜度O(nlogn)以上的解法,增加題目難度。比如,原先要求2000ms,你可以將其改成500ms或者1000ms,具體數值依據具體情況而定,一般是500ms的整數倍。
  • 修改輸入輸出要求,增大或減少輸入輸出的數據量級,讓題目更復雜或更簡單。
  • 修改數據大小要求,比如原先數據為109,剛好為int型。如果你將數據大小修改為1018,那就只能用long long型來存,可能會卡掉一些解法;如果你將數據大小修改為10^5,可能會多出一些做法,比如用hash表,然后前綴和、后綴和等處理。
  • 修改數據類型要求。原先輸入為int,你將其改成double或者float,可能會增加一些難度,反之減少難度。
  • 以上為針對題目的修改,一定要確保搜索引擎沒法搜索到改好的題目。

    如何生成樣例

    生成輸入數據

    一般我們需要20組左右的樣例,保存在文件中

  • 首先一定有一些邊界輸入,需要你自己添加,比如邊界情況,特殊情況等等。
  • 當你添加了數據量相對小的邊界輸入后,可能有一些數據量大的邊界輸入無法手動添加,可以寫一個代碼,添加極限數據量的邊界輸入。
  • 剩下的可以寫一個代碼讓python隨機生成不同階次的樣例。比如你的數據量大小為10^6,你可以生成數個數據量100、數據量1000、數據量10000、數據量100000、數據量1000000的輸入。
  • 生成輸出數據

    將產生的20組輸入樣例在你的標準程序中,輸出結果在文件中,保存為輸出樣例。這里一定要保證你的標程的正確性,以及輸入輸出的合法性(符合題目描述)。

    你需要將生成好的輸入輸出拿出一兩組放在題目描述中,當然你可以拿出特殊數據,讓參賽者 AC;也可以只拿出常規數據,讓做題者一直 WA。生成好的樣例規范命名,如下圖所示:

    寫標程+OJ服務器實際運行

    做完上面這幾部之后,一道題目基本上出完了,接下來你需要將這些數據和樣例在你們的OJ服務器上運行,確保時間,空間都符合要求。在測試中,你需要將你預想能通過的幾種復雜度的解法都在服務器上跑一遍,確保題目的解法可行性。

    總結

    本人大四的時候給省賽出了一道題目,并不難,但是數據處理等卡住了很多隊伍。

    我認為讓一部分會高級操作、數據處理比較熟悉,或者對時間復雜度優化比較熟悉的題,有區分度的題才是好題。

    需要卡住的是那些只會暴力解法的隊伍。

    本人經驗分享結束,暫且只記得這么多了,后面可能還會更新。

    希望讀這篇博客的你能出出一道讓自己和大家都滿意的題目。

    本文聲明

    本文并非鼓勵大家采用這種方法出題,本文想表達的是憑空造輪子很難,但是可以找到一個基本題,將起抽象出來,然后自己擴充,這個擴充也有一定的難度,可能也有新的idea,或者完全變成了另一道題,由出題者的能力決定,但是擴充比造輪子簡單很多,畢竟輪子不是人人能造。

    如果你能力足夠強,雖然你很難看到此文,但是我仍希望文章中某個小建議能幫到你。

    如果你能力一般,與我一樣在迫不得已的情況下需要出題,部分可以參考本文,還是希望你在此基礎上能靈感閃現,出幾道有靈魂的題。

    當然,如果你并非在大型比賽出題,知識出題訓練,想整出大量的新題,本文可能對你有很大幫助。

    發這篇文章的緣由是,這是我自己寫的筆記,后來發現網上沒有類似的,就發出來了,可能寫的不太好,但是我希望能幫到情況和我當時類似的人。

    個人情感

    我們學院沒有老師訓練acm,全靠我們幾個感興趣的自己在學。在我們偏遠的大西北,偏偏我們還是最好的學校,我們上上任院長比較有遠見,連續多年申請acm省賽舉辦資格,可能出于對偏遠地區考慮,我們還申請到了。但是我們沒有老師出題,沒有人帶,搞了個acm協會還經常拖欠經費,學院不肯花錢。照理我們確實沒有出題的資格,但是我們不想讓我們喜歡的東西,唯一的機會就這么消失掉,省賽只能硬著頭皮出題,區域賽邀請賽只能半自費去參加。

    奇跡的是,我們那個院長還申請到了舉辦區域賽的資格,我們幾個既是后勤,又是技術維護,還是參賽人員。比賽的那幾天,每天都在修學校那些用了好多年破爛機器,學校各個部門見到沒收益都不做事,我們得到處跑,到處開證明,晚上基本上沒合眼。所以是通宵熬夜直接出現在賽場,賽前還要換件衣服當技術人員解決參賽者們的問題。
    我描述這些只是表示,不是人人都有那么好的環境來訓練,還有很多和我一樣境遇的同學,我希望你們不要因為困難就放棄。我們學院沒老師,就學長帶學弟,獎牌都放協會,一代一代往下傳,后來者不埋怨我們這些學長什么都沒做,就足夠了。

    也希望在艱苦環境中學習的ACMer大家不要放棄,總有人會你比更艱苦。如果你是先行者,你為學弟學妹們做的好事他們會記住;如果你是后來者,你要相信你的前幾屆已經做出很大努力了。
    我已經大學畢業了正在考研,幾乎沒有機會再出現在賽場,但是算法是我感興趣的事物,我不會放棄,我會堅持學習下去。

    謹以此文,與君共勉!

    總結

    以上是生活随笔為你收集整理的如何出(改编)一道ACM算法题?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲综合第一页 | 国产草草浮力影院 | 欧美日韩中文字幕视频 | 黑人一区二区三区四区五区 | 三级做爰在线观看视频 | 性欧美大战久久久久久久免费观看 | 中文字幕无码乱码人妻日韩精品 | 成人午夜免费网站 | 中文字幕一区二区三区人妻 | 天天操天天操天天操 | 中国人与拘一级毛片 | 精品中文字幕在线观看 | 波多野结衣a v在线 欧洲免费av | 超黄网站在线观看 | 国产精品理论片在线观看 | 日韩美女视频网站 | 欧美在线天堂 | 国产又粗又黄视频 | 成人免费播放视频 | 解开人妻的裙子猛烈进入 | 91porny九色| 一级片久久久久 | 搡国产老太xxx网站 高h喷汁呻吟3p | 91久久国语露脸精品国产高跟 | 欧美在线免费视频 | 日韩色 | 日韩视频一区二区三区在线播放免费观看 | 午夜大片| 亚洲国产成人无码av在线 | 久久高清精品 | 人妻少妇偷人精品无码 | 免费的黄色的视频 | 免费观看成年人视频 | 欧美色图亚洲视频 | 成人高潮片免费视频 | 天天做天天摸天天爽天天爱 | 欧美一级啪啪 | 成人精品视频在线观看 | 亚洲国产黄色片 | 欧美在线视频二区 | 欧美日韩理论 | 无遮挡的裸体按摩的视频 | 蜜桃精品一区二区 | 妺妺窝人体色777777 | 精品日本一区二区三区 | 97播播 | 亚洲在线一区二区 | 国产乱真实合集 | 午夜啪视频 | 国产成人麻豆精品午夜在线 | 日韩福利视频导航 | 天天爱夜夜操 | 免费黄色三级网站 | 内射一区二区 | 久久综合伊人77777蜜臀 | 亚洲依依| 欧洲色区 | 日日干夜夜操 | 欧美成人黄色 | 一级日批片 | 一级视频在线观看 | 国产男女精品 | 欧美 日韩 中文字幕 | a毛片在线| 国模私拍视频在线 | 最新黄网 | 久久久久久欧美 | 日韩精品无码一区二区三区久久久 | 99久久精品久久久久久清纯 | 操处女逼视频 | 蜜桃av网站| 欧美日韩五月天 | 欧美91av| 国产欧美一区二区三区沐欲 | 成年人午夜影院 | 中文字幕第三页 | 亚洲精品久久久中文字幕 | 国产探花视频在线观看 | 国产一区二区精彩视频 | 亚洲黄色av网站 | 嫩草伊人久久精品少妇av | 亚洲欧美综合视频 | 一本大道av| 天天高潮夜夜爽 | 日本护士做爰视频 | 日韩第三页 | 成人国产一区二区三区精品麻豆 | 在线看网站| 亚洲免费国产视频 | 欧美一区二区三区爽爽爽 | 97在线观看免费视频 | 精品免费久久 | 中文字幕毛片 | yellow免费在线观看 | 性生交大片免费看3p | 天天操一操| 精品一区二区三区无码视频 | 关秀媚三级 | 欧美黑人又粗又大高潮喷水 |