acm programming contests coordinator: dr. hubert chan coach: zhichao zhao website:...
TRANSCRIPT
![Page 1: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/1.jpg)
ACM Programming ContestsACM Programming Contests
Coordinator: Dr. Hubert ChanCoach: Zhichao Zhao
Website: i.cs.hku.hk/~provinci
![Page 2: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/2.jpg)
Contact InformationContact InformationCoordinator (grant raiser)
Dr. Hubert Chan
Office at CB429
Coach (consultant)
Zhichao Zhao
Office at CB LG101
![Page 3: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/7.jpg)
The ContestThe Contest
while ( ! isTimeout() ) {read();think();program();//debug();submit();
}
![Page 8: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/10.jpg)
How to win in ACM-ICPCHow to win in ACM-ICPCWinning ACM-ICPC requires you
to be excellent in implementation and algorithms!
![Page 11: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/11.jpg)
How to win in ACM-ICPCHow to win in ACM-ICPCBe excellent in implementation and
algorithms.
For implementation, you need practice.
For algorithms, you need to be creative and logical.
![Page 12: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/14.jpg)
POJ 1000 – A + B = ?POJ 1000 – A + B = ?
![Page 15: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/19.jpg)
Example – Ancient Messages Example – Ancient Messages (WF11’)(WF11’)
![Page 20: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/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: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/23.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 24: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/24.jpg)
Tips for Self-learningTips for Self-learningPractices make perfect!
Attend online contests frequently.
Discuss in our Facebook Fans Page◦To join, contact Zhichao ZHAO
![Page 25: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/25.jpg)
For interested students.Please briefly introduce your self.I would like to discuss with you
about training.Tell me what you need regarding
training and I will try to help.
![Page 26: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/26.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?…
![Page 27: ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci](https://reader037.vdocuments.site/reader037/viewer/2022110209/56649e005503460f94ae8f44/html5/thumbnails/27.jpg)
Thank you!Thank you!