This repository has been archived on 2022-06-22. You can view files and clone it, but cannot push or open issues or pull requests.
usaco-guide/content/1_Intro/Expected.mdx
2020-07-17 18:29:45 -07:00

64 lines
2.9 KiB
Text

---
id: expected
title: Expected Knowledge
author: Nathan Wang, Benjamin Qi
description: What you're expected to know before continuing onto the rest of USACO Bronze.
prerequisites:
- io
---
import { Problem } from "../models";
export const metadata = {
problems: {
general: [
new Problem("Bronze", "Promotion Counting", "591", "Very Easy"),
new Problem("Bronze", "Word Processor", "987", "Very Easy"),
new Problem("Bronze", "Square Pasture", "663", "Very Easy"),
new Problem("Bronze", "Bucket Brigade", "939", "Very Easy"),
]
}
};
The remainder of this guide assumes that you know the basics of how to code in one of the languages listed above, including the following topics:
- Variables
- Data types
- Reading Input
- Writing Output
- Loops
- If / Else
- Logical operators
- Functions
- Basic Recursion (a function calling itself)
- Arrays
- Multidimensional Arrays
In particular, contestants using Java should be familiar with roughly the first half of AP Computer Science A. Familiarity with [competition math](https://github.com/bqi343/USACO/blob/master/Resources/Competition%20Math.md) (ex. AIME qualification) is helpful but not required.
## Getting Started
You may find the following resources helpful for familiarizing yourself with your language of choice. Resources below (including starred ones) are optional.
<Resources>
<Resource source="CodeSignal" title="Arcade, Interview Practice" url="https://codesignal.com/" starred>can practice basics</Resource>
<Resource source="Philippines OI" title="Prepare" url="https://noi.ph/prepare/" starred>lots of links!</Resource>
<Resource source="VPlanet" title="Learn to Code" url="https://www.vplanetcoding.com/course1">basic problems, mostly loops</Resource>
<Resource source="IOI" title="Getting Started" url="https://ioinformatics.org/page/getting-started/14">not up to date</Resource>
<Resource source="Quora" title="Joshua Pan - Schedule for Beginners" url="https://www.quora.com/What-is-a-good-schedule-to-follow-for-becoming-better-at-competitive-programming-for-beginners">generally good, although CSES problemset (see "Resources") is definitely a better place to start than USACO Training or Codechef</Resource>
</Resources>
## Introductory Problems
The following require relatively little programming experience and no algorithmic knowledge.
<Problems problems={metadata.problems.general} />
Also check the [CSES Introductory Problems](https://cses.fi/problemset/list/) up to and including "Palindrome Reorder." Once you're done with these, you should continue onto Bronze.
<Warning>
Some modules in the "Intro" section (ex. Fast Input & Output) are not relevant for USACO Bronze contestants. It is probably best to skip these for now and return to these later. However, make sure to check [Code Conventions](./code-con) for the templates that will be used for code snippets in later modules!
</Warning>