lynbrook computer science n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Lynbrook Computer Science PowerPoint Presentation
Download Presentation
Lynbrook Computer Science

Loading in 2 Seconds...

play fullscreen
1 / 9
phyliss

Lynbrook Computer Science - PowerPoint PPT Presentation

108 Views
Download Presentation
Lynbrook Computer Science
An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Lynbrook Computer Science December 8th, 2008

  2. Announcements • USACO December – tonight! • ACSL #1 – next week • TopCoder Marathon Match – Wednesday • $5000 purse!

  3. USACO: How to stay under time-limit • Know when to brute force • Use custom tester • Identify slowest parts of program

  4. When to brute-force? • 1 sec = ~ 1 million operations/iterations • Depends on size/complexity of each iteration • Plug in max values, determine max possible states that will need to be tested

  5. Example • There are P (3 <= P <= 15) people. Given that the productivity of two people Pi and Pj working together is Wi_j (-1000 <= Wi_j <= 1000), what is the most productive group that can be formed? • How many states will we need to test, at most?

  6. There are 2^15 = 32,768 possible groups to be formed at most (with 15 people). • In each group, each person can either be in the group, or not in the group. Thus with P people the number of possible groups is 2^P. • We can brute-force!

  7. USACO Custom Tester • USACO allows you to test your program with custom test data • Write a program to generate max size test data • Run it on USACO server to see if your program is fast enough

  8. Identifying slowest parts of a program • Nested loops = BAD! • Recursive functions: • Check how many times they call themselves. • E.g. Flood-fill recursion calls itself 8 times each time (once for each direction)

  9. Improving algorithms? • Nested loops: • Devise a new algorithm that has fewer nested loops • Recursion: • Can the solution be found with an iterative algorithm? • (Usually, it can)