Polymorphism
Download
Report
Transcript Polymorphism
ACM Programming Contest
Nov 3, 2007
1
Introduction
ACM organized such contests from1977
Contest
Regional Qualifying
Final
Purpose
provides college students with the
opportunity to demonstrate and sharpen their
programming skills
2
Introduction
The contest
3 persons +1 computer
5 hours
Input: a set of problems
Output: Programs (in C, C++, Java etc)
Communication:
In team
With officials
Nobody else
3
Process
When you have solution, runner will
send it to judge
Judge will run it under blink test data
It produces correct output, then it is correct
Otherwise (wrong output, wrong format,
compile error, runtime error), incorrect
The result will be sent back to team in
timely manner
Team may resubmit the solution
4
Score
the number of problems correctly solved
the time from the beginning of the
contest to the submission of a correct
solution for each problem
the number of incorrect submissions to
a problem for which a correct solution is
eventually submitted
5
Score
First, teams are ranked in order of the
number of correct solutions
When two or more teams have the same
number of correct solutions, they are
further ranked by penalty minutes
computed as the sum of
for each solved problem, the number of
minutes from the beginning of the contest until
the correct solution was submitted
for each solved problem, 20 minutes for each
incorrect solution submitted before the correct
6
The questions
Draw from high school and college
mathematics and computing
As well as everyday knowledge and
problem solving
7
Strategy
Good teamwork is essential
Only one PC is available
Your individual skills are as honed as possible
Knowledge
Standard algorithms and the ability to find an
appropriate algorithm for every problem in the set;
Ability to code an algorithm into a working program;
Having a strategy of cooperation with your
teammates.
8
Strategy
Five main categories of problems
Search problems
These involve checking a large number of
situations in order to find the best way in which
something can be done
Graph problems
The problems have a special structure so they
can be represented as a graph-theoretical
problem for which standard algorithms are
available
9
Strategy
Five main categories of problems
Geometrical problems
These involve geometrical shapes, lines, and
angles
Trivial problems
The choice of appropriate algorithm is clear, but
these usually take quite a long time to program
carefully
Non-standard problems
10
Team Strategy
There is only one computer
So it has to be shared
The problems have to be distributed in some
way
Specialization'' is a good way of using
the inherent synergy
If each team member is an expert for a
certain category of problem
11
Team Strategy
Maybe one of the team is a great
programmer but has poor analytical
skills,
Combining these skills will lead to bug-free
solutions for difficult problems
Another way to use synergy is to have
two people analyze the problem set
12
Team Strategy
Most efficient way to write a program is
to write it alone
avoid communication overhead and the
confusion caused by differing programming
styles
Other considerations
13
Next Week
3:30pm Room NW204
Actual programming questions, strategy
and solutions are on the websites:
http://people.auc.ca/xu/ProgrammingContest.ht
ml
http://acm.ashland.edu/2005/problem-set.html
14