230 likes | 345 Vues
Reactive and Output-Only. HKOI Training Team 2006. Liu Chi Man (cx) 11 Feb 2006. Outline. Reactive tasks (a.k.a. interactive tasks) Output-only tasks (a.k.a. open test data tasks) Scoring methods. Traditional tasks. Read input, write output Static input Problem: Add Two Numbers
E N D
Reactive and Output-Only HKOI Training Team 2006 Liu Chi Man (cx) 11 Feb 2006
Outline • Reactive tasks (a.k.a. interactive tasks) • Output-only tasks (a.k.a. open test data tasks) • Scoring methods HKOI 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 HKOI 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 HKOI 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 HKOI 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" HKOI 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 HKOI Training Team 2006
Nature of reactive tasks • Black-box testing • Two-person games • Updates and queries HKOI Training Team 2006
Black-box testing • Use queries to reveal hidden information • Examples include • Guess The Number • Mastermind HKOI 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) HKOI 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 HKOI 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 HKOI 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 HKOI 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 HKOI 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.) HKOI Training Team 2006
Effort vs. Score Score Effort HKOI 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 HKOI 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 HKOI Training Team 2006
Frequencies HKOI 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 HKOI 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% HKOI 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 HKOI Training Team 2006
Relative scoring • Your answer is compared to the best answer among all contestants • If nobody else attempts that task, you win HKOI Training Team 2006