Download presentation

Presentation is loading. Please wait.

Published byAlexa Powell Modified over 4 years ago

1
DECEMBER 8 TH, 2008 Lynbrook Computer Science

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)

Similar presentations

Presentation is loading. Please wait....

OK

WEEK 1 You have 10 seconds to name…

WEEK 1 You have 10 seconds to name…

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google