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