140 likes | 158 Views
Join the ACM Programming Contest and showcase your programming prowess in a challenging 5-hour competition. Teams of three compete to solve a set of problems using languages like C, C++, and Java. Practice standard algorithms, hone your problem-solving skills, and compete for top rankings based on correct solutions and penalty minutes. Enhance your strategy, teamwork, and coding abilities in this thrilling event!
E N D
ACM Programming Contest Nov 3, 2007
Introduction • ACM organized such contests from1977 • Contest • Regional Qualifying • Final • Purpose • provides college students with the opportunity to demonstrate and sharpen their programming skills
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
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
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
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 solution
The questions • Draw from high school and college mathematics and computing • As well as everyday knowledge and problem solving
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.
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
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
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
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
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
Next Week • 3:30pm Room NW204 • Actual programming questions, strategy and solutions are on the websites: http://people.auc.ca/xu/ProgrammingContest.html http://acm.ashland.edu/2005/problem-set.html