Kevin Zhang
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
9
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# IOI 準備心得 以下是我三年來做題目的心得,以及打完 IOI 對 IOI 題目的一些感想,希望能夠幫助到朝 IOI 努力的人。 ## 大方向的準備 先定義一些名詞 首先是在解題目的各類能力 1. 先備知識 像是一些資料結構,一些經典技巧等等。 這方面的能力,能夠讓你在看到一些條件的時候,直接把題目做完。 這類能力如果不足,容易發生你明明和其他人一樣都做了個巧妙的題目轉換,變成比較有機會做的題目,結果最後還是做不出來,因為不會那個經典技巧 2. 觀察力 在看到題目之後,能夠依照題目給的條件,觀察出一些把題目變簡單的關鍵點的能力。同時差不多也是轉換問題的能力或是拆包裝的能力。 主要在於看出題目給的限制有什麼意義。 這類能力不足的話,可能會別人已經在想辦法優化他的複雜度,然後你還在想要怎麼多項式時間做。 3. 實做能力 這邊不是想要講打出一堆冗code不出bug的能力, 而是想要講能夠把想做的事盡量精簡的寫出來,在出bug的時候能夠有效率的找到,而且在自己想到要實做東西的時候,不會覺得煩躁難耐。 再來是在比賽中的各類能力 1. 時間分配 能夠在 5 小時有效率的把時間花在最有價值的地方 2. 冷靜 能夠在賽中腦袋保持清醒,正常的思考。 以上就是我覺得在 IOI 要表現好的話,所要必備的能力。 再來是如何練習這些能力。 1. 先備知識 我覺得可以在建中板中講義學大方向的技巧 然後在 cses, csacademy 練習比較細的小技巧 2. 觀察力 各種 OI 題都不錯,Atcoder 也不錯 3. 實做能力 平常就要累積,不能看測資 debug, 要能分辨是想法錯還是程式碼寫爛,盡量試著給自己時間壓力練習,賽中比較不會爆炸。 如果想在 TOI/IOI 拿好成績 只有練習解題能力是不夠的 因為往往會出現超出自己能力範圍的題目,就算是 Benq 也有機會遇到這種問題。 如果在太難的題多花太久 在做得出來的問題沒有花足夠的時間 就會讓人在賽後後悔 所以必須好好擬定自己賽中的策略 這點絕對必要! 1. 時間分配 在賽中會發生各種狀況 平均的OI通常三題裡都至少有一題可做,有一題仔細想或許能做,有機會有一題滅臺 如果只是一直普通的戳 OI 練就會覺得,三題都很難根本不常出現,所以沒放在心上(我之前就自以為這樣)。 但是 IOI 三題都很難是很容易發生的,而且沒有對應的準備就容易爆炸。 所以平常就能去練習戳三個很難的題目,然後給自己5小時,目標是高分,而不是有 AC 題目(看看今年記分板就知道要AC不容易,而且有人好不容易AC但是總分卻很低,排在很後面)。 在分配時間上有兩個大方向 一個是安排好在比賽前期中期後期的目標 另外一個是在當下利用時間 我自己安排整體目標 0~1 hr 看完題目 理解題意並稍微思考 1~2 hr 想 subtask, 如果超級好寫就先寫穩定心情,不然先觀望 2~3 hr 評估目前的狀況,開始拿能拿的分數,同時也想其他subtask/滿分解 3~4 hr 主力目標是把精神分數拿完,如果對其他題目很有信心,或是有多的時間才去想其他題目 4~5 hr 最後就隨機應變 關於在當下利用時間,意思是指說,給自己設定適當的停損點,我通常抓20分鐘,然後給一個小目標,然後就專心的想,不去管其他事情。 小目標可以很小可以很大,大到想一整題的滿分解,小到想某個線索的用途,或是某個方向的可行性。 重點在於在這段時間可以完全專心,並且減少原地繞圈圈的狀況。 2. 冷靜的能力 這真的很困難,我自己也沒有做好,而且每個人的狀況也都不一樣,只能依靠經驗的累積。 有的人賽前看動漫就能緩和心情,有的人可能要賽前刷水題。 我只能提供我覺得有用的方案。 1. 適當去上廁所,洗臉 2. 不要想打爛之後會有什麼可怕的後果 3. 在賽前幾分鐘開始在腦袋中告訴自己要比賽了,該進入狀況了 4. 照著自己的比賽策略走,好好實行。就算很低分也要相信自己照著策略走是沒有錯的。 5. 去挑三難題比賽讓自己被打爆 我在緊張的時候腦中會語無倫次,容易漏看細節,漏看性質,有時候甚至腦袋一片空白,一直原地打轉,浪費寶貴時間。賽後就會很懊惱。但是也不要責怪自己,因為壓力大是難免的,如果一場比賽打爛,那重要的是學會把下一場打好,而不是責怪這一場很爛。要好好檢討自己的比賽策略,如果把時間都拿來自爆自棄,就沒有時間進步了。 ### 最後做個整理 1. 多去vir 5hr 的比賽,掌握自己的節奏。 2. vir 完賽後要做檢討,檢討自己的策略,檢討自己在做各個題目的狀況 3. 不要忘記休息,把自己逼累了,大腦也會拒絕思考。 4. 做題能力和比賽能力要均衡的培養,才不會走偏。 ## 準備的細節 ### 關於到底要寫什麼題目 我自己高三主要就是刷 csacademy, 每個禮拜打一場 OI 比賽,偶爾打 atcoder regular contest 到後面的時候,變成一直挑 joisc 找人一起寫。 我覺得寫題的多樣性很重要 像是寫久了就有點感覺,各個地方的題目,都會有各地的特色 CF 很多題目只有一個觀察點,關鍵一步想到就做完了 Atcoder 思考 >>>>>>>> 實做 USACO 舊的題目很多水題 Csacademy 很多經典技巧,但是到了最後面的部份會開始難的很怪,有點說不出來,主要是有一堆細節,要仔細想清楚,沒想清楚就爆炸。 JOISC 會出大實做題,然後題目都給很多線索,必須要一一拿來想清楚 我自己最常犯的錯就是長時間都刷同個地方的題。 久而久之你就會讓自己習慣做那種味道的題目,然後做其他地方題目的 能力就會下降。 在高二的時候刷 CF 下場就是不會比賽策略,不會一步步觀察 一直刷 joisc 下場就是我的 code 很冗很長,因為我覺得可能是大實做題,所以沒想到 code 能更短 一直刷 atcoder 實做能力壞掉 如果一直刷水題 就會造成難以耐住性子去想難題 重點是**不要讓自己習慣一種思考模式**,多在不同的地方寫題,就能夠避免。(也不是叫你去很多很雜的judge寫題) 理想上就是各大 judge, OI 都去寫寫,不要挑食。 還有 virtual 理想就是一週 1-3 場,然後做好賽後檢討! 如果每次做題都是一題一題戳,就會習慣**花大量連續時間在同一題**,絕對會影響到賽中想題目的狀況。 ## IOI 的難點 最後想說的是 IOI 難在哪裡 今年打了比賽之後,我有特別感受到 IOI 的題目 subtask 都切的很好,基本上多觀察到一件事情,就能多拿到 2-30 分。拿部份分很重要 再來是千萬不要覺得 IOI 的實做量都很正常,IOI 絕對可以 也會 出現實做很麻煩的題目。 還有就是每一題都很困難,就算是紅黑人也不一定能破台。 題目的包裝很好,相對於 joisc 給很多線索, 我覺得 IOI 屬於線索很少,每個線索都要仔細研究一陣子,才有機會發現什麼。 就算你已經猜到一整個題目的套路,也可能因為某個小細節沒看到,導致你錯失高分的機會。每個小細節都要能在緊張的時候看清楚,這點真的很困難。 ### 結語 打完 IOI 之後,我也重新想了一下如果還有一年,我該改進什麼。 大概整理了一下,就變成了上面的心得。 因為這些是我自己的結論,所以還是會有待改進的地方,也會有錯誤的地方。使用的時候還是必須照自己的狀況調整才行。 希望能夠幫到學弟妹,讓未來台灣競程更強。

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully