acm programming contests coordinator: dr. hubert chan coach: luyi mo training holder: jonathan so...
TRANSCRIPT
![Page 1: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/1.jpg)
ACM Programming ContestsACM Programming Contests
Coordinator: Dr. Hubert ChanCoach: Luyi MoTraining Holder: Jonathan SoWebsite: i.cs.hku.hk/~provinci
![Page 2: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/2.jpg)
Contact InformationContact InformationCoordinator (grant raiser)
Dr. Hubert Chan
Office at CB429
Coach (consultant)
Luyi Mo
Office at CB417
Training Holder (great volunteer!)
Jonathan So (Soso)
http://facebook.com/soso.so
![Page 3: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/3.jpg)
ACM International Collegiate Programming Contest (a.k.a. ACM ICPC, ACM competition, ICPC) is the largest university-level programming contest in the world.
http://icpc.baylor.edu
Statistics in 2012 ◦ # of students: 29,479
◦ # of universities: 2,322
◦ # of countries: 91
◦ # of continents: 6
What is ACM-ICPCWhat is ACM-ICPC
![Page 4: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/4.jpg)
ACM-ICPC is comprised of several levels:
◦ Hong Kong Local Contest
◦ Asia Regional Contest
Earn ticket to World Finals
◦ World Finals 100+ teams
What is ACM-ICPCWhat is ACM-ICPC
![Page 5: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/5.jpg)
Why ACM-ICPCWhy ACM-ICPCYou can learn…
◦Many useful algorithms, mathematical insights
◦How to code/debug quickly and accurately◦How to work in a team
Then you can rock in classes, job interviews, etc.
It’s also fun!
![Page 6: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/6.jpg)
Contest RuleContest Rule Each team: 3 students One computer per team
4 - 5 hours 8 - 13 problems to solve
◦ Presented in a real-life scenario
◦ Need to discern the underlying essential problem and develop algorithms
◦ Input and output requirement
◦ Time limit
Judge by some test cases (unknown to us)◦ Pass all test cases = solve the question
◦ If you fail, you can resubmit
Winner is the team that solves the most problems in the least time!
![Page 7: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/7.jpg)
The ContestThe Contest
while ( ! isTimeout() ) {read();think();program();//debug();submit();
}
![Page 8: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/8.jpg)
Tips to win in acm-Tips to win in acm-icpcicpc
![Page 9: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/9.jpg)
Four levels of programmerFour levels of programmer
1. Implementation◦ know the language well, translate idea to
programs
2. Algorithms◦ Design good solutions
3. Software engineering◦ manage different components and
people
4. World◦ How can I change the
world?
![Page 10: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/10.jpg)
How to win in ACM-ICPCHow to win in ACM-ICPCWinning ACM-ICPC only requires
you to be excellent in implementation and algorithms!
![Page 11: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/11.jpg)
How to win in ACM-ICPCHow to win in ACM-ICPCBe excellent in implementation and
algorithms.
Important Warning!◦ ACM cannot test your ability beyond
algorithms◦To change the world requires many
more things.◦See the bigger picture and keep
learning.◦ Implementation and algorithms are
necessary, but they are not the end. :)
![Page 12: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/12.jpg)
What kind of implementation skills What kind of implementation skills are needed?are needed?
Variables, loops, functionsExhaustion
◦Try all permutations◦Try all subsets◦Try all paths, etc
Classes, operator overloading, STL
Persistence (don't be afraid of long problems and programs)
![Page 13: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/13.jpg)
How to improve How to improve implementation?implementation?Write more programsRead more booksDon't afraid of new tools
◦ STL
Exercises. Codeforces: 48A, 242A, 75B, 81B, 82B, 9CPOJ: 1000, 1001, 1002, 1004, 1005, 1006,
1007, 1008, 1010, 1012, 1016, 1019
![Page 14: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/14.jpg)
POJ 1000 – A + B = ?POJ 1000 – A + B = ?
![Page 15: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/15.jpg)
Algorithmic skills (1/4)?Algorithmic skills (1/4)?
1. Standard algorithm design principles◦ Divide-and-conquer◦ Dynamic programming
Save up the partial results The optimal solution can be found by backtracking
◦ Greedy Sometimes the seemingly best choice is the only
best choice
These are principles that we don't need to memorize
![Page 16: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/16.jpg)
Algorithmic skills (2/4)?Algorithmic skills (2/4)?2. Common algorithms
◦ Algorithms that have been studied before.◦ Memorize the algorithms (or at least their usage)◦ Sorting, graphs, network flow, coordinate
geometry, math Be hardworking, read more books
![Page 17: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/17.jpg)
Algorithmic skills (3/4)?Algorithmic skills (3/4)?3. Running time analysis
![Page 18: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/18.jpg)
Algorithmic skills (4/4)?Algorithmic skills (4/4)?
4. Observation and creativity◦ Find some properties about the
problem
![Page 19: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/19.jpg)
Example – Ancient Messages Example – Ancient Messages (WF11’)(WF11’)
![Page 20: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/20.jpg)
Example – Ancient MessagesExample – Ancient Messages
1 3 5 4 0 2
# of holes per shape:
2 4 6 5 1 3
# of adjacent white regions per shape:
![Page 21: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/21.jpg)
Example – Ancient MessagesExample – Ancient Messages
Solution Framework:◦ Step 1 - Figure our all
black regions◦ Step 2 - For each black
region, count number of adjacent white regions
Flood Fill Algorithm to find regions
Recursions to implement
![Page 22: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/22.jpg)
Tips for Self-learningTips for Self-learningBe self-motivated, passionate, and
persistent. Try to do an many exercises as possible.
Form a team or a study group ASAP so that you can learn with others.
Make full use of online materials (http://i.cs.hku.hk/~provinci/utilities.html)◦ E-books◦ Online Tutorials (recommend Stanford
course homepage)◦ Recommended Online Judges:
Codeforces (www.codeforces.com) Peking University Online Judges(poj.org)
![Page 23: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/23.jpg)
![Page 24: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/24.jpg)
![Page 25: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/25.jpg)
Tips for Self-learningTips for Self-learningAttend online contests
◦CodeForces Regular Round Contests: http://www.codeforces.com/contests
◦Topcoder Single Round Matches: http://community.topcoder.com/tc
◦Monthly Contests in Online Judges e.g. ZOJ Monthly Contests:
http://acm.zju.edu.cn
◦Google Code Jam◦Facebook Hacker Cup◦……
![Page 26: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/26.jpg)
Tips for Self-learningTips for Self-learningPractices make perfect!
Test your ability in an individual contest around reading week!
Discuss in our Facebook Fans Page◦To join, contact Luyi Mo or Jonathan So
![Page 27: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/27.jpg)
Tentative Schedule Tentative Schedule Topics
Feb - AprilBasic topics: recursion, breadth first search, depth first search, greedy, dynamic programming, graphs
May Team formation test for local contest
June / July ACM Hong Kong Local Contest
July - August
Online Contests (e.g. Codeforces regular round Div.1 and Div.2)
Sep - OctAdvanced topics: Contest like problemsTeam formation test for regional contest
Oct / Nov ACM Asia Regional Contest
March ACM World Final Contest (by invitation)
![Page 28: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci](https://reader031.vdocuments.site/reader031/viewer/2022013011/56649e5e5503460f94b56e39/html5/thumbnails/28.jpg)
Self-introductionSelf-introductionNameCome from …Major in …Year … studentBeginner? Need teammates? Any
previous programming experience?Senior member? Anything want to
share? Any help you can provide?…