145 lines
No EOL
7 KiB
Text
145 lines
No EOL
7 KiB
Text
---
|
|
id: using-this-guide
|
|
title: Using This Guide
|
|
author: Nathan Wang, Benjamin Qi
|
|
description: How to effectively use this guide to maximize your time.
|
|
---
|
|
|
|
## Pre-Release Notice
|
|
|
|
This guide is in the _pre-release_ stage, meaning it is not yet complete!
|
|
|
|
Please help us complete this guide by **giving feedback using the "Contact Us" button**<Asterisk>It's located on the bottom left of the screen. If you can't see it, open the hamburger menu by clicking the icon on the top left of the screen.</Asterisk>! You can give feedback about anything:
|
|
|
|
- Unclear Explanations
|
|
- Missing / Bad Problem Solutions
|
|
- Typos / Broken Links
|
|
- Suggestions
|
|
- And anything else!
|
|
|
|
If you found the guide useful, or if you got stuck while using the guide, please also let us know :)
|
|
|
|
## Changing Your Language
|
|
|
|
To change your language, click the "Language" button on the bottom left corner of the screen (or in the hamburger menu). Content may be different depending on which language is selected!
|
|
|
|
<LanguageSection>
|
|
|
|
<CPPSection>
|
|
|
|
Your current language is **C++**.
|
|
|
|
</CPPSection>
|
|
|
|
<JavaSection>
|
|
|
|
Your current language is **Java**.
|
|
|
|
</JavaSection>
|
|
|
|
<PySection>
|
|
|
|
Your current language is **Python**.
|
|
|
|
</PySection>
|
|
|
|
</LanguageSection>
|
|
|
|
## How to Use This Guide
|
|
|
|
- Use the "Module Progress" dropdowns to track your progress through this guide!
|
|
- Use the "Contact Us" button on the bottom left corner of the screen (in the hamburger menu on phones) if something is unclear or if you need help.
|
|
- Read through all starred resources before continuing!
|
|
- We highly recommend doing all starred problems. If you need more practice, try some of the unstarred ones.
|
|
|
|
**Skipping around** is especially recommended for higher level contestants (Gold/Platinum). Feel free to <TextTooltip content="You can do this by scrolling to the end of a module">mark a module</TextTooltip> as "Skipped" and come back to it at a later time!
|
|
|
|
For lower level contestants, the guide is generally<Asterisk>There are some exceptions; for example, the last module in "Silver -> Sorting" assumes knowledge of the first two modules in "Silver -> Ordered Sets & Maps." In any case, we will list prerequisites to each module as needed.</Asterisk> designed to be completed in order. However, feel free to skip certain modules and come back to it later. In particular, **you may want to skip the General group** ("How to Practice," "Contest Strategy," "Additional Resources," and "Contests") and read it later.
|
|
|
|
## About This Guide
|
|
|
|
<warning-block title="This guide is NOT a syllabus!!">
|
|
|
|
Topics on this guide reflect _past_ problems, not _future_ problems. Contest problems may contain topics that aren't mentioned in this guide, and topics that appear in one division of this guide may appear in lower divisions in future contests.
|
|
|
|
</warning-block>
|
|
|
|
- For Bronze, Silver, and Gold contestants, we aim to be a "**one stop shop**," meaning that this is the only site you have to use to be exposed to most (if not all) of the topics required for Bronze - Gold.<Asterisk>Of course, you should still use other websites as necessary.</Asterisk>
|
|
- We'll link to online resources that already exist whenever possible instead of rewriting tutorials ourselves.
|
|
- For Platinum contestants, we'll try our best to cover the main topics.<Asterisk>There are too many topics for us to effectively cover all of them. If you want to do well in Platinum, you will have to find additional resources on your own in addition to this site</Asterisk>
|
|
- Difficulty ranges from "Very Easy" to "Insane." Difficulty is **not** comparable across modules (even of the same division).<Asterisk>Difficulty refers to how challenging a problem is after reading the module, not how difficult the problem is in general.</Asterisk>
|
|
- "Intro" refers to a problem that just asks you to implement a standard algorithm or data structure.
|
|
|
|
<!--
|
|
### Modules
|
|
|
|
All material in this guide will be grouped into **modules** such as the one you're reading right now.
|
|
|
|
#### Lesson
|
|
|
|
- Goal is to introduce you to the concept.
|
|
- Everything is meant to be completed in order.
|
|
- Usually begins with at least one standard problem.
|
|
- External resources (text, possibly videos) will generally be placed in tables like the one above. Generally, we'll **star** those that are most useful for beginners.
|
|
|
|
<spoiler title="Hidden Content">
|
|
|
|
If we want you to spend time thinking about a sample problem before checking the solution we'll place the solution in **spoiler blocks** like this.
|
|
|
|
</spoiler>
|
|
|
|
<optional-content title="Optional Content">
|
|
|
|
It's okay to skip over these. Some material in these boxes might not be useful for competitive programming.
|
|
|
|
</optional-content>
|
|
|
|
#### Implementations
|
|
|
|
With examples of usage. Should compile on their own.
|
|
|
|
- For Bronze and Silver, we will provide code snippets in C++, Java, and Python.
|
|
- For Gold, we will provide code snippets in C++ and Java and (sometimes) Python.
|
|
- For Platinum, code snippets may only be provided in one language (typically either C++ or Java).
|
|
|
|
<warning-block>
|
|
|
|
Will contain common errors that you should avoid.
|
|
|
|
</warning-block>
|
|
|
|
#### Practice
|
|
|
|
<info-block title="Pro Tip">
|
|
|
|
Maybe helpful bits of advice.
|
|
|
|
</info-block>
|
|
|
|
- Link the relevant past USACO problems (and other recommended problems).
|
|
- Problems should be sorted in order of how they are recommended be completed.
|
|
- Add comments regarding solution sketches.
|
|
- At some point we'll write full editorials for those problems which don't have them (or if existing editorials are poorly written).
|
|
- Difficulty ranges from "Very Easy" to "Insane." Difficulty is **not** comparable across modules (even of the same division).
|
|
- "Intro" refers to a problem that just asks you to implement a standard algorithm or data structure.
|
|
|
|
-->
|
|
|
|
<!-- Difficulty should be comparable across a division. Say that you have *almost-solved* a question if you scored at least $n-2$ out of $n$ test cases. At least for platinum, difficulty levels should correspond approximately to the following USA Pre-college almost-solve rates on a USACO contest:
|
|
|
|
- Easy: $\ge 40\%$ (ex. Fort Moo, Team Building, Redistricting)
|
|
- Normal: $\ge 20\%$ (ex. Card Game, Balancing, Gathering)
|
|
- Hard: $\ge 10\%$ (ex. Mooriokart, Train Tracking 2, Friendcross)
|
|
|
|
Old gold problems should probably be bumped up one level. -->
|
|
|
|
|
|
## For Contributors
|
|
|
|
We welcome any and all contributions to this site! Please reach out to the guide coordinator, [Nathan Wang](mailto:nathan.r.wang@gmail.com), to get started.
|
|
|
|
## For Instructors
|
|
|
|
If you're an instructor/club officer teaching for _free_, please feel free to use whatever parts you'd like from this guide, though please provide credit + a link to this site! Additionally, feel free to [reach out to us](mailto:nathan.r.wang@gmail.com) if you have a specific request for what material you'd find helpful.
|
|
|
|
_Licensing notes_: No part of this site may be used,<Asterisk>Exceptions exist (generally for free classes); see the full license for more details</Asterisk> reproduced, redistributed, commercialized, or sold without prior written permission. [Learn more here.](/license) |