Problem Solving on ACM
International Collegiate
Programming Contest
Fedor Tsarev, ACM ICPC World
Champion 2008
St. Petersb...
2
Epigraph
The whole is more than
the sum of its parts
(Aristotle)
3
Perfect Team
 Common code-style
(indents, variable naming,
…)
 Common patterns of
algorithm implementation
 Everyone ...
4
Start of the Contest
 Write a template
 Read problem statements:
 Starting with the first
problem
 Starting with the...
5
Problems Status
№ Member 1 Member 2 Member 3 Comments
A
+ Graph theory
B
+
C
+
D
+
…
6
One hour from the start of the
contest…
№ Member 1 Member 2 Member 3 Comments
A
+ Graph theory
B
+ + + KMP
C
+ + + DP ov...
7
How to solve a problem
1. Read the statement carefully
2. Invent an algorithm
3. Discuss the algorithm with another memb...
8
Submitting a Solution
 Save the source file before submitting
 Compile it
 Always test the solution on example tests ...
9
If your solution is not
accepted…
 … then you have a bug in the program 
 To find it carefully read the printout
 Ne...
10
Debugging
 Debugging is a very time-consuming process
 You do not create code while debugging
Avoid using debugger!
R...
11
Programming in Pairs
 If the implementation is too difficult for you…
 If you are tired…
 If the code is large…
 Tr...
12
Last hour of the contest
 Your goal is to get “Accepted” for all
problems you have started
 Do not start new problems...
13
Log of the contest
 Only for trainings
 Helps you to analyze the results of the contest
Time Member 1 Member 2 Member...
14
Thank you!
We wish you success in ACM
ICPC!
Upcoming SlideShare
Loading in...5
×

Problem solving on acm international collegiate programming contest

1,943

Published on

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,943
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Problem solving on acm international collegiate programming contest

  1. 1. Problem Solving on ACM International Collegiate Programming Contest Fedor Tsarev, ACM ICPC World Champion 2008 St. Petersburg University of IT, Mechanics & Optics 18.10.2010 ETH Zurich
  2. 2. 2 Epigraph The whole is more than the sum of its parts (Aristotle)
  3. 3. 3 Perfect Team  Common code-style (indents, variable naming, …)  Common patterns of algorithm implementation  Everyone should know strong and weak points of other members of the team
  4. 4. 4 Start of the Contest  Write a template  Read problem statements:  Starting with the first problem  Starting with the last problem  Do not try to solve the first problem you have read – find the simplest problem  Every member must know his role at the start of the contest
  5. 5. 5 Problems Status № Member 1 Member 2 Member 3 Comments A + Graph theory B + C + D + …
  6. 6. 6 One hour from the start of the contest… № Member 1 Member 2 Member 3 Comments A + Graph theory B + + + KMP C + + + DP over subsets D + + + Geometry … + + +
  7. 7. 7 How to solve a problem 1. Read the statement carefully 2. Invent an algorithm 3. Discuss the algorithm with another member of your team 4. Discuss the implementation with another member of your team 5. Write a program 6. Test your solution
  8. 8. 8 Submitting a Solution  Save the source file before submitting  Compile it  Always test the solution on example tests and on all tests you have:  Corner cases  Maximal tests (checking time limit and memory limit)  Print the source code after submitting (on the official contest)
  9. 9. 9 If your solution is not accepted…  … then you have a bug in the program   To find it carefully read the printout  Never read the code from the screen  If you find a bug do not fix it right now on the computer – there are more bugs in the program  Fix the bug in the printout  Try to explain your code to another member of your team  Write a slower solution and stress-test with it  …
  10. 10. 10 Debugging  Debugging is a very time-consuming process  You do not create code while debugging Avoid using debugger! Read the printout instead
  11. 11. 11 Programming in Pairs  If the implementation is too difficult for you…  If you are tired…  If the code is large…  Try programming in pairs:  One of the team members writes the code  Another one is looking for mistakes  This idea is from eXtreme Programming
  12. 12. 12 Last hour of the contest  Your goal is to get “Accepted” for all problems you have started  Do not start new problems if you have “old” ones  If you do not have enough time for all problems choose some of them
  13. 13. 13 Log of the contest  Only for trainings  Helps you to analyze the results of the contest Time Member 1 Member 2 Member 3 30 Wrote a template Read A, B, C, D. Wrote solution for B Read F, G, H, I 60 … … … … … … … 300 … … …
  14. 14. 14 Thank you! We wish you success in ACM ICPC!

×