Survey

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Transcript

2015 Canadian Computing Competition Hong Kong Contest The University of Hong Kong March 5, 2015 Please decide and work on EITHER the JUNIOR set OR the SENIOR set but not both. ****** JUNIOR Question Set ****** Problem J1: Rock-paper-scissors Time Limit: 1 second Memory Limit: 256MB Alice and Bob are playing rock-paper-scissors game. The game rules are simple: rock crushes scissors; paper covers rock; and scissors cut paper. If both players throw the same shape, the game is tied. Your task is to determine the number of games won by Alice and Bob, respectively. Input specification: The first line contains one integer N (1 <= N <= 100) that represents the number of games. The second line is Alice’s shape sequence. The shape sequence contains N shapes and they are separated by a space. The i–th shape in the sequence represents the shape thrown by Alice in the i–th game. There are only three shape values: “rock”, “paper”, and “scissors”. The third line is Bob’s shape sequence. Output specification: Two integers separated by a space, representing the number of games won by Alice and the number of games won by Bob. Sample Input 1 3 rock rock scissors paper rock rock Sample Input 2 4 paper rock rock scissors rock scissors rock rock Sample Output 1 02 Sample Output 2 21 1 Problem J2: What is the minimum area? Time Limit: 1 second Memory Limit: 256MB There are N points in a 2D plane. You can place any square on the plane as long as the square is rectilinearly oriented, i.e., its sides are paralleled to the x and y axis. What is the minimum area of a square that can cover at least two points in the plane? Input specification: The first line contains one integer N (2 <= N <= 100) representing the number of points in the plane. The next N lines are the x and y coordinates of the points. The x and y coordinate values are separated by a space. It is guaranteed that x and y are integers and in the range of [-10000, 10000]. You can assume that the points are unique. Output specification: An integer represents the minimum area of a square that can cover at least two points in the plane. Sample Input 1 3 00 21 -2 -4 Sample Input 2 3 00 22 33 Sample Output 1 4 Sample Output 2 1 Explanation: A possible square for Sample 1 is with the lower left corner and upper right corner locating at (0,0) and (2,2), which can cover points (0,0) and (2,1). The area of this square is 4. A possible square for Sample 2 is with the lower left corner and upper right corner locating at (2,2) and (3,3), which can cover points (2,2) and (3,3). The area of this square is 1. 2 Problem J3: Queens can’t attack me! Time Limit: 1 second Memory Limit: 256MB Consider a square chessboard with N × N cells and M queens on the chessboard (Note: there are no other chesses besides the queens). A queen can move vertically, horizontally or diagonally. As an example, consider the square chessboard with 6*6 cells with one queen (denoted by the ♕ notation) in Figure 1 below. The cells that can be reached by the queen are marked with the ⃝ notation. There are 16 cells cannot be reached by the queen. ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ♕ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ♕ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ⃝ ♕ ⃝ ⃝ ⃝ ⃝ Figure 1 Figure 2 Your task is to calculate the number of cells that are NOT reachable by any queens. Input specification: The first line contains two integers, N and M. (1 <= N <= 100, 1 <= M <= 10). Following are M lines. Each line contains two integers x and y, representing the location of a queen, i.e., the queen is at x-th row and y-th column (1 <= x, y <= N). Output specification: The number of cells that are not reachable by any queens. Sample Input 1 61 43 Sample Input 2 62 43 64 Sample Output 1 16 Sample Output 2 9 Explanation: Figure 1 and Figure 2 correspond to Sample 1 and Sample 2, respectively. 3 Problem J4: Where to build my house? Time Limit: 1 second Memory Limit: 256MB Bob wants to build a house along a river. Unfortunately some parts of the river are occupied by animals and cannot be used. Please write a program to help Bob to calculate the length of the longest continuous river segment that is NOT occupied by any animals. You can think of the river as a line of length L from position 0 to position L. There are N animals, each animal occupies a continuous river segment from position s to t. Note that the segments occupied by animals may be overlapping. Output 0 if the whole river is occupied by animals. Input specification: The first line contains one integer L (1 <= L <= 109) that represents the length of the river. The second line contains an integer N (1 <= N <= 100000) that represents the number of animals. Following are N lines. Each line contains two integers s and t (0 <= s < t <= L) that represent the river segment occupied by one animal. Output specification: The length of longest continuous river segment that is not occupied by any animals. Sample Input 1 5 2 02 35 Sample Input 2 10 2 25 47 Sample Input 3 10 2 05 5 10 Sample Output 1 1 Sample Output 2 3 Sample Output 3 0 Explanation: For Sample 1, as 0-2 and 3-5 are occupied, the only remaining part is 2-3. For Sample 2, the remaining parts are 0-2 and 7-10. Problem J5: No friends in the same group. Time Limit: 1 second Memory Limit: 256MB Alice is the teacher of a class of N students. She is going to divide the students into 2 groups. She has the following requirements: Alice knows that some pair of students are very good friend and they must not be assigned to the same group. Alice also wants to minimize the difference between the sizes of the two groups. Let’s write a program to help Alice to do the grouping, in which the program should: Report -1 if it is not possible to do the grouping. Report the group assigned to each student that fulfill the requirements. 4 Input specification: The first line contains two integers N and M, where N denotes the number of students, and M denotes the number of known relationship between students. Following are M lines, and each line contains two integers S and T, which means student S and T are very good friend and they must not be assigned to the same group. Each relationship will only be provided once. Test cases: In our test cases, we have 2 <= N <= 1000 and 1 <= M <= 100000. In 30% of the test cases, N <= 16. In another 20% of the test cases, the number of possible ways to group students <= 10000. Output specification: If there is no way to do the grouping, output -1. Otherwise, output a string containing N characters representing the group assigned to each of the N students. If the i-th student is assigned to group 1, then the i-th character in the string is ‘1’. Otherwise, the i-th character in the string is ‘2’. The string should represent the grouping with minimum difference between the sizes of the two groups. (That is, the difference between the number of 1’s and the number of 2’s in the output should be minimized.) If there is a tie, output the lexicographically smallest solution. Sample Input 1 43 12 34 13 Sample Input 2 33 12 13 23 Sample Input 3 64 12 13 46 45 Sample Output 1 1221 Sample Output 2 -1 Sample Output 3 122211 Explanation: In Sample 1, since (1, 2), (3, 4) and (1, 3) cannot be assigned into the same group, to make the difference minimized, we want 1 and 4 be in the same group, and 2 and 3 be in the other. Among the outputs, 1221 is lexicographically smallest. That is, 1 and 4 are in group 1, and 2 and 3 are in group 2. In Sample 2, there is no way to do the grouping. The reason is that 1 cannot be in the same group of 2 or 3. But 2 and 3 cannot be in the same group, either. In Sample 3, 1 cannot be with 2 and 3, and 4 cannot be with 5 and 6. The minimized difference is 0, by group (1, 5, 6) and (2, 3, 4) together. ****** End of Junior Set ****** 5 ****** SENIOR Question Set ****** Problem S1: Finding number of pairs Time Limit: 1 second Memory Limit: 256MB Given a sequence of n integers A[1], A[2], ..., A[n] and a positive integer M, count the number of pairs (i, j) that satisfy the following two conditions: i < j, and A[i] + A[j] <= M. Input specification: The first line contains integer n ( 2 <= n <= 105 ) and M ( 0 <= M <= 109 ), separated by a space. The second line contains n integers, which denotes A[1], A[2], ... , A[n] (0 <= A[i] <= 109). In 50% of the test cases, n <= 1000. Output specification: The output contains an integer, which denotes the number of pairs that satisfies the two conditions. If the output is smaller than 109+7, please keep it as is. Otherwise, output the number mod 109+7. Sample Input 1 56 12345 Sample Input 2 5 12 36828 Sample Output 1 6 Sample Output 2 7 Explanation: In Sample 1, among the pairs, (1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4) satisfy the conditions. In Sample 2, (1, 2), (1, 3), (1, 4), (1, 5), (2, 4), (3, 4), (4, 5) satisfy the conditions. 6 Problem S2: Matching problem Time Limit: 1 second Memory Limit: 256MB Given two positive integers N and M, and two strings S and T of lowercase letters, we generate two strings A and B so that they have the following characteristics: A and B have equal string length; A is generated by concatenating S for N times; B is generated by concatenating T for M times. It is regarded as a match if the i-th character in A is the same as the i-th character in B. Given N, M, S, T, please write a program to return the number of matches among A and B. Input specification: The first line of the input contains 2 integers, representing N and M, separated by a space. The second and the third line contain string S and T, respectively. It is guaranteed that A and B have equal string length. In 20% of the test cases, the length of A <= 105. In 40% of the test cases, the length of S <= 10 and the length of T <= 10. In 100% of the test cases, N, M <= 109, the length of S <= 106, the length of T <= 106. Output specification: Print the number of matches among A and B. Sample Input 1 35 ababa aba Sample Input 2 30 20 abbb bbaabb Sample Output 1 8 Sample Output 2 70 Explanation: In the first sample, A = ababaababaababa, B = abaabaabaabaaba. Hence, Ai = Bi when i = 1,2,3,6,10,13,14,15. 7 Problem S3: Symmetric Cross Time Limit: 3 seconds Memory Limit: 256MB You are given an R × C matrix M. Each of its elements is either 0 or 1. A cross of size k is a subregion of M, centering at one of its elements, containing the center and k elements in each of the four orthogonal directions (i.e., horizontal and vertical directions). A cross is called “symmetric”' if it does not change after being rotated by 90 degrees. Please find the cross with the largest size in M. It is guaranteed that there is exactly one such cross. Input specification: The first line contains two integers R and C, the number of rows and columns of M. The next R lines, each contain C numbers separated by one space, representing M. In 50% of the test cases, 3 <= R, C <= 500. In 100% of the test cases, 3 <= R, C <= 2000. Output specification: The output contains a single line with three integers: the size of the largest symmetric cross in M, and the row and column number of its center. Sample Input 1 55 00100 00000 10101 00000 00100 Sample Input 2 55 00100 01001 10100 00101 00100 Sample Output 1 233 Sample Output 2 122 8 Problem S4: Maze – When to meet? Time Limit: 1 second Memory Limit: 256MB A maze consists of N rooms and N one-way corridors. From the i-th room there is exactly one one-way corridor to the k[i]-th room. An adventurer and a minotaur are in the maze. The adventurer will move from a room to the next room in one minute, while the minotaur will do the same in two minutes. The maze is constructed so that as long as the adventurer and the minotaur start moving at the same moment, they will eventually meet in the same room. The adventurer and the minotaur choose two different rooms in the maze at the very beginning. After that, they will keep moving from one room to another room via the corridors. You are asked the maximum possible time for the adventurer and the minotaur to meet exactly in a room. Input specification: The first line contains an integer N, the number of rooms. The second line contains N numbers, of which the i-th number is k[i]. In 50% of the test cases, 1 <= N <= 5000; In 100% of the test cases, 1 <= N <= 100000. Output specification: The maximum possible time for the adventurer and the minotaur to meet in a room. Sample Input 1 6 234561 Sample Input 2 6 234534 Sample Output 1 10 Sample Output 2 8 Explanation: In the second sample, if the adventurer starts at room 6 and the minotaur starts at room 1, they need 8 minutes to meet at the same room (i.e., room 5). 9 Problem S5: Can I pass the courses? Time Limit: 1 second Memory Limit: 256MB There are many students in the University of Hong Kong. Some of them are hardworking, some are clever and some are both hardworking and clever. We use two real numbers to describe a student. HWP (Hard Working Point) describes how hardworking she is, and CP (Clever Point) describes how clever she is. There are many courses in the University of Hong Kong. For some of the courses, like physics, student must work very hard and do a lot of exercise to pass the course. So students with high HWP can pass it easily. Of course, if a student is clever, it also helps a little. For some other courses, like artificial intelligence, CP helps a lot and HWP helps a little. So we can also use two real numbers x and y to describe a course. A student can pass the course if and only if HWP × x + CP × y > 1. There is a course management system, teachers can create new courses or cancel courses, and students can know if she can pass all the courses that exist right now. Input specification: The first line of the input contains one integer M, representing the number of operations. Each of the following M lines contains some numbers describing an operation. If the first number is 0, it means a teacher creates a new course. Then the following three numbers in this line are x, y, id of the course. (0.001 < x, y < 1000, 0 <= id <= 100000, and id is an integer) If the first number is 1, it means a teacher cancels an old course. Then the following one number in this line represents the id of the course to cancel. It is guaranteed that this course exist before deleting. If the first number is 2, it means a student wants to know if she can pass all the courses that exists right now, the following two numbers in this line are HWP and CP of the student. (0.001 < HWP, CP < 1000) To avoid precision problems, for any student and any course, |HWP × x + CP × y – 1| > 10-8. For 20% of the test cases, M <= 1000. For other 40% of the test cases, there is no cancel operation. For 100% of the test cases, M <= 100000. Output specification: For each student, if she can pass all the courses, print a line with single integer 1. Otherwise, print a line with a single integer 0. 10 Sample Input 1 8 0121 0 5 0.2 2 2 0.1 2 2 0.1 3 0 0.13 0.59 3 0 2.44 0.78 4 231 213 Sample Input 2 10 0121 0 5 0.2 2 2 0.1 2 2 0.1 3 12 2 0.1 2 0 0.13 0.59 3 0 2.44 0.78 4 231 213 Sample Output 1 0 1 0 1 Sample Output 2 0 1 1 0 1 ****** End of Senior Set ****** 11