<p>USACO has announced the schedule for their 2004-2005 internet contests. The first round will be the first week-end in Nov. The most noticeable change from last year is that there are now 4 divisions, so everyone from novice to expert prgrammer can compete. Languages include C/C++, Pascal, and Java. They have also recently expanded the interactive training pages to support all 3 languages. </p>
<p>USACO is is a great program! The contests and training material are all free. Anyone in the world can enter, even if your school is not interested. In addition to the opportunity for programming glory, you have a chance to win a free training camp in Colorado Springs.</p>
<p>Four divisions? Interesting. I have a feeling, however, that a number of people will participate in a division that is "below them" in order to be able to place well. Like someone who is really a level 3 programmer would participate in level 2, as they would be able to do very well in that division, and getting first or secondn in level 2 is much better than getting top 10 or 20 in level 3.</p>
<p>the first contest of the year is a "qualifying round" to place people in divisions. There's no incentive to throw the first round, since people who do well in one division are required to move up for the next round. And only people who participate in the top division are eligible for the training camp or a shot at the US team to the int'l competition. They have also tried to come up with names (gold, silver, bronze, novice) that will make it clear to colleges what level you are competing in if you report having won something or other.</p>
<p>Simfish - go register for the training gate now. Then you will get all the announcements about the first round before the Nov 5-8 contest window actually begins. Good luck!</p>
<p>PROB Your Ride Is Here
PROB Greedy Gift Givers</p>
<p>so I submit these two, right? I see almost nothing else available on the website.</p>
<p>And I did kind of slack off; I expected the competition to be near March or April, like the other olympiads. So now I'm compelled by the urgency of the situation.</p>
<p>you don't have to submit any problems to be registered for the training gate. You just have to have a username and password. If you can see the level 1 problems, you're registered. But it would probably be a good idea to try to do at least a few training gate problems before next week-end to get familar with the interface.</p>
<p>You were almost right in thinking you didn't have to worry about it until the spring. The most important USACO contest is the US Open in April. But it would be very difficult to do well on it without having done any of the internet contests earlier in the year. It can be done, however! One of the people on the 2003 IOI team did not find out about USACO until a couple of weeks before the US Open. He spent that 2 weeks tearing up the training pages, and was able to do well enough on the US Open to get invited to camp. From there, he earned a spot on the team. But he was an exceptional programmer, and had also won a gold medal at the IMO. Most people would not be able to do that, and need the internet contests as well as the training pages to learn how to do the algorithmic programming USACO involves.</p>
<p>Another bit of USACO history - both of the seniors on the 2002 IOI team ended up at Caltech. I'm glad you're going to enter. Good luck!</p>
<p>Hi guys!
just finished the USACO qualifying round! how did it go for you guys. I got only two probs, so very bad here. How do you do the big integer multiplication thing in java. I know there is a library function, but manually< no clue. also we should start a USACO thread somewhere, to gather the computer geeks.</p>
<p>Texas137 ~ You said: "the first contest of the year is a "qualifying round" to place people in divisions." above.</p>
<p>When my son went to the site all he found was an entry test for "Gold" level which was definitely above him. Like sbi, he only finished two problems. Is this the norm, or did he make a mistake and enter at the wrong level of expertise somehow?</p>
<p>Reasonabledad - yeah, I just went and looked at it and see what you mean. There is only one division on the qualifying round. It's confusing that they chose to call it "gold" instead of calling it "qualifying" or something. But don't worry, it was the qualifying round. The 6 problems were supposed to cover a range from very easy to at least one very. very hard. So only the most experienced programmers would be able to do all of them. People who could not solve any will be in the lowest division. People who had the highest scores (not necessarily perfect scores) will be in the gold division. And everyone else will be assigned somewhere appropriate. Solving 2 problems sounds pretty good for a first timer. That will probably be silver or bronze, depending on which problems they were and how many tests cases you got. You'll be invited to move up or down in the divisions as the year progresses, so everyone can be assured they will eventually settle in an appropriate group. In the past, when they only had one division, a large chunk of the competitors on each round would make a zero and never try again. The goal of having multiple divisions is for everyone to be challenged, but not discouraged.</p>
<p>Texas, thank you for your typical well-informed response. You really know these Olympiads and contests! My son was thinking he had performed so poorly that he would be out of the contest automatically. But I noticed that just trying to take the qualifier was good for him: this afternoon he was looking up answers and approaches to the problems he could not solve. I take this as a really good sign.</p>
<p>Reasonabledad - congratulations to your son! I hope he's working on the training pages. They are excellent, and you can really move up the ranks fast by working through them.</p>
<p>Hi guys. i made it into the bronze. I know the best way to move up ranks is practice. but What is dynamic programming guys. I have no clue. Also, I am a java person.</p>
<p>definition of DP from the USACO training pages:</p>
<p>"Dynamic programming is a confusing name for a programming technique that dramatically reduces the runtime of algorithms: from exponential to polynomial. The basic idea is to try to avoid solving the same problem or subproblem twice."</p>
<p>this concept is independent of your programming language. And again, it is introduced in section 2.2 of the training pages.</p>