Reactive and Output-Only HKOI Training Team 2006 Liu Chi Man (cx) 11 Feb 2006

Preview:

Citation preview

Reactive and Output-OnlyReactive and Output-OnlyHKOI Training Team 2006

Liu Chi Man (cx)11 Feb 2006

2HKOI Training Team 2006

Outline

• Reactive tasks (a.k.a. interactive tasks)

• Output-only tasks (a.k.a. open test data tasks)

• Scoring methods

3HKOI Training Team 2006

Traditional tasks

• Read input, write output

• Static input

• Problem: Add Two Numbers• Input: Two integers per line• Output: For each input line, add the two integers

and output the sum on one line

4HKOI Training Team 2006

Add Two Numbers

• Algorithm One• while not end of input do

read integers from input

write sum to output

• Algorithm Two• read all integers into an array

compute all sums

write all sums to output

5HKOI Training Team 2006

Interactivity

• Problem: Guess The Number• My lucky number is an integer between 1 and N• Guess until you get the correct answer• After each guess I will tell you whether your guess

is too big or too small or correct

6HKOI Training Team 2006

Interaction via provided libraries

• Function calls

• Examples:• N := GetN(); / N = GetN();• MakeGuess(7);

• Task description contains sufficient instructions

• Using a library• Pascal: uses mylib;• C/C++: #include "mylib.h"

7HKOI Training Team 2006

Interaction via standard I/O

• I/O method same as traditional tasks

• IMPORTANT• Make sure you read and write in the correct order

specified in the task description

8HKOI Training Team 2006

Nature of reactive tasks

• Black-box testing

• Two-person games

• Updates and queries

9HKOI Training Team 2006

Black-box testing

• Use queries to reveal hidden information

• Examples include• Guess The Number• Mastermind

10HKOI Training Team 2006

Two-person games

• Write a program to play a game against the judging program

• Examples include• Tic-tac-toe• Nim (match-picking)

11HKOI Training Team 2006

Updates and queries

• Processing of a set of data

• “Update” command• Modify the set of data

• “Query” command• Ask for some information about the data

• A Query must be answered before next command is revealed

12HKOI Training Team 2006

Strategies

• Black-box testing• Bisection, trisection, etc.

• Two-person games• Minimax method (dynamic programming speed up)

• Updates and queries• More advanced data structures, e.g. disjoint sets

13HKOI Training Team 2006

Output-only tasks

• All input test cases are given to you

• You are required to submit corresponding output files for these inputs

• No source code, executable required

• Usually optimal (best) answers are very difficult to obtain• Partial scoring

14HKOI Training Team 2006

Nature of output-only tasks

• “Hard” problems• Optimal solutions not likely to be found within

minutes• For the precise definition of “hardness”, look

forward to “[Talk] Introduction to Complexity Theory”

• “Semi-manual” problems• Some of the test cases designed for you to solve by

hand or wicked methods

15HKOI Training Team 2006

Strategies• Manual inspection of all test cases

• Make sure you don’t miss those easy inputs

• Go for suboptimal solutions• Greedy, heuristics, random, etc.

• Fully utilize your resources• Hours of CPU time• Plentiful memory• Other tools (calc, sort, factor, bc, graphics software,

games, etc.)

16HKOI Training Team 2006

Effort vs. Score

Effort

Score

17HKOI Training Team 2006

1 Task = 10 Tasks!

• Sometimes test cases are designed so that each one has some special properties

• Different properties may lead to different solving methods

• 1 task, T programs• T is the number of test cases

18HKOI Training Team 2006

Conclusion

• 1 to 2 per competition (6 tasks in total)

• Reactive tasks are more popular than output-only tasks

• In general, it is easier to score high marks in reactive tasks than output-only tasks

19HKOI Training Team 2006

Frequencies

React Output React Output

IOI’00 1 0 NOI’00 0 0

IOI’01 3 1 NOI’01 0 0

IOI’02 1 1 NOI’02 1 1

IOI’03 2 1 NOI’03 1 1

IOI’04 0 0 NOI’04 1 1

IOI’05 1 0 NOI’05 0 1

20HKOI Training Team 2006

Scoring methods

• How are marks given for each test case?

• All-or-nothing• Correct – full; incorrect – zero

• Partial• You may get something between full and zero

21HKOI Training Team 2006

Partial scoring

• Multiple parts• Example: If you get the first integer wrong, you get

0%; if you get the first integer correct, you get 30%; if you get both integers correct, you get 100%

• Suboptimal award• Example (maximization): Let A be the optimal

answer and B be your answer; your score is (B/A) 100%

22HKOI Training Team 2006

Partial scoring

• Number of queries (Reactive: black-box testing)• Fewer queries, higher score

• Usually an explicit formula for score calculation is given

• Some of the variables in the formula may be unknown to you, however• “Your answer is compared to our answer”• Our refers to the judges

23HKOI Training Team 2006

Relative scoring

• Your answer is compared to the best answer among all contestants• If nobody else attempts that task, you win

Recommended