Computer and Information Science
University of Oregon
2001 ACM Programming Competition Strategy
Here are some thoughts on team strategy for the competition:
-
Since there is only one workstation per team, it is absolutely essential
that this resource be used as efficiently as possible. This means that the
solutions should be designed on paper all the way to the point of hand
written code, so that the workstation is only used for typing in a solution
and compiling it. As much as possible, the hand written solution should be
free of syntax errors. The contest time crunch demands that the workstation
not be used for development, and only minimally for debugging. In
particular, once your solution compiles, if it does not produce the correct
results, print a hard copy and debug on paper so that the workstation is free
for someone else.
-
All team members should first do a quick read of all the problems with the
goal of guessing at their difficulty and the general nature of their solutions.
Use the assessment sheet for recording these
initial impressions. No more than a half hour should be spent on this initial
reading. Each team member should start looking at the problem sequence at a
different point so that all of the problems are read as soon as possible. I.e.,
the first member should begin with problem A, the second with problem D, and
the third with problem G, but all team members should eventually look at all
of the problems. During this initial assessment, if any member is confident
they can solve a problem in fifteen minutes, then that team member should
go ahead and work out the solution and submit the problem, then come back
to reading the other problems.
-
After the initial individual reading, the team should together discuss the
problems and decide on a first problem for each member. The easy problems
should be solved first, even if they aren't as interesting. Remember that
the goal of the competition is to solve as many problems as possible, so go
for the easy ones first. A secondary goal is to get correct solutions submitted
as soon as possible.
-
When you are working on a solution, read the problem description carefully,
paying special attention to any constraints (or lack of) on the input, and
the format of the output. It might help to first write the code for reading
the input and generating output before implementing the logic to get the
correct output.
-
Some things to keep in mind:
-
Consider boundary conditions on input
-
Consider possible value overflows
-
Consider algorithm efficiency only to the extent that solution will
terminate for extreme input cases in a reasonable amount of time
-
Consider the possibility of "trick" problems, i.e., the problem may look
complex and actually be very simple, or may look simple, but require
a complex solution.
-
Before submitting a solution, try it with the sample input and compare
the output to the sample output. Also try input not given, but allowed
by the problem description, and verify that the output is correct to the
extent possible. Try extreme cases of input values.
-
Probably most important - remember that the competition experience should
be fun. It is an opportunity to challenge yourself and use your problem
solving skills, and you should have an enjoyable time doing so.
datkins@cs.uoregon.edu
Last updated 2001/10/08
[an error occurred while processing this directive]
|