联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-02-06 09:11

A. Requirements

Code (90%)

You can write your code in Java, Python, C, or C++. The time limit may vary among different

languages, depending on the performance of the language. Your code must be a complete excutable

program instead of only a function. We guarantee test data strictly compliance with the requirements

in the description, and you do not need to deal with cases where the input data is invalid.

Libraries in this assignment:

? For C/C++, you can only include standard library.

? For Java, you can only import java.util.*

? For Python, you can only import standard library. In other words, you cannot import libraries

such as numpy.

We provide an example problem to illustrate the information above better.

Report (10%)

You also need to write a report in pdf type to explain the following:

? What are the possible solutions for the problem?

? How do you solve this problem?

? Why is your solution better than others?

Please note that the maximum number of pages allowed for your report is 5 pages.

Remember that the report is to illustrate your thinking process. Keep in mind that your report is

supposed to show your ideas and thinking process. We expect clear and precise textual descriptions

in your report, and we do not recommend that you over-format your report.

B. Example Problem: A + B Problem

Description

Given 2 integers A and B, compute and print A + B

Input

Two integers in one line: A, and B

Output

One integer: A + B

Sample Input 1

1 2

Sample Output 1

3

Problem Scale & Subtasks

For 100% of the test cases, 0 ≤ A, B ≤ 106

1

Solutions

Java

import java . util .*;

public class Example {

public static void main ( String [] args ) {

int a , b;

Scanner scanner = new Scanner ( System . in );

a = scanner . nextInt ();

b = scanner . nextInt ();

scanner . close ();

System . out . println (a + b );

}

}

Python

AB = input (). split ()

A , B = int ( AB [0]) , int ( AB [1])

print (A + B )

C

# include < stdio .h >

int main ( int argc , char * argv [])

{

int A , B ;

scanf ("%d%d", &A , &B );

printf ("%d\n", A + B );

return 0;

}

C++

# include < iostream >

int main ( int argc , char * argv [])

{

int A , B ;

std :: cin >> A >> B;

std :: cout < < A + B << std :: endl ;

return 0;

}

C. Submission

After finishing this assignment, you are required to submit your code to the Online Judge System

(OJ), and upload your .zip package of your code files and report to BlackBoard.

C.1 Online Judge

Once you have completed one problem, you can submit your code on the page on the Online Judge

platform (oj.cuhk.edu.cn, campus only) to gain marks for the code part. You can submit your

solution of one problem for no more than 80 times.

After you have submitted your program, OJ will test your program on all test cases and give you a

grade. The grade of your latest submission will be regarded as the final grade of the corresponding

problem. Each problem is tested on multiple test cases of different difficulty. You will get a part of

the score even if your algorithm is not the best.

2

Note: The program running time may vary on different machines. Please refer to the result of

the online judge system. OJ will show the time and memory limits for different languages on the

corresponding problem page.

If you have other questions about the online judge system, please refer to OJ wiki (campus network

only). If this cannot help you, feel free to contact us.

C.2 BlackBoard

You are required to upload your source codes and report to the BlackBoard platform. You need

to name your files according to the following rules and compress them into A1_<Student ID>.zip :

A1_ < Student ID >. zip

|-- A1_P1_ < Student ID >. java / py /c/ cpp

|-- A1_P2_ < Student ID >. java / py /c/ cpp

|-- A1_Report_ < Student ID >. pdf

For Java users, you don’t need to consider the consistency of class name and file name.

For example, suppose your ID is 123456789, and your problem 1 is written in Python, problem 2 is

written in Java then the following contents should be included in your submitted A1_123456789.zip:

A1_123456789 . zip

|-- A1_P1_123456789 . py

|-- A1_P2_123456789 . java

|-- A1_Report_123456789 . pdf

C.3 Late Submissions

Submissions after Feb 7 2024 23:59:00(UTC+8) would be considered as LATE.

The LATE submission page will open after deadline on OJ.

Submisson time = max{latest submisson time for every problem, BlackBoard submisson time}

There will be penalties for late submission:

? 0–24 hours after deadline: final score = your score×0.8

? 24–72 hours after deadline: final score = your score×0.5

? 72+ hours after deadline: final score = your score×0

FAQs

Q: I cannot access to Online Judge.

A: First, please ensure that you are using the campus network. If you are not on campus, please use

the university VPN. Second, please delete cookies and refresh browser or use other browser. If you

still cannot access to Online Judge, try to visit it via the IP address 10.26.200.13.

Q: My program passes samples on my computer, but not get AC on OJ.

A: Refer to OJ Wiki Q&A

Authors

If you have questions for the problems below, please contact:

? Problem 1. Yingli Zhou: yinglizhou@link.cuhk.edu.cn Yuyang Xia: yuyangxia@link.cuhk.edu.cn

? Problem 2. Yingli Zhou: yinglizhou@link.cuhk.edu.cn Yuyang Xia: yuyangxia@link.cuhk.edu.cn

3

CSC3100 Data Structures Spring 2024

Programming Assignment 1

Due: Feb 7 2024 23:59:00

Assignment Link: http://oj.cuhk.edu.cn/contest/csc310024spa1

Access code: Waaagh

Question1 weighs 40% and question2 weighs 50%.

We extend the time limitation for Python from 1 second to 2 seconds.

1 Let us sort (40% of this assignment)

1.1 Description

Little X has a list A and a factor k. There are n positive integers in A. Little X wants to construct

some 2D points (xi

, yi) by assigning xi = ?

ai

k

? and yi = ai%k, and he wants to sort these points in

several methods.

Method one, sort all points by the x-coordinates from smallest to largest, and for those with the same

x-coordinate, sort by the y-coordinates from smallest to largest.

Method two, sort all points by the x-coordinates from largest to smallest, and for those with the same

x-coordinate, sort by the y-coordinates from smallest to largest.

Method three,sort all points by the x-coordinates from smallest to largest, and for those with the same

x-coordinate, sort by the y-coordinates from largest to smallest.

Method four, sort all points by the x-coordinates from largest to smallest, and for those with the same

x-coordinate, sort by the y-coordinates from largest to smallest.

1.2 Input

Each test contains multiple test cases. The first line contains a single integer T(1 ≤ T ≤ 10) the

number of test cases. The description of the test cases follows.

The first line of each test case contains three integers n, k, id(1 ≤ n, k ≤ 105

, 1 ≤ id ≤ 4), separating

by one space, where n represents the length of the list and id represents the method Little X hopes

you to use.

The second line of each test case will be the list A (1 ≤ ai ≤ 109

).

The sum of n over all test cases in one test won’t exceed 5 × 105

.

1.3 Output

For each test case, output n lines, the ith line containing two integers xi

, yi

, separating by one space,

indicating the coordinate of the ith point of the constructed list sorted according to the given order.

The output of each test case is separated by one empty line.

4

Sample Input 1

4

2 65 1

7917 1292

1 41 1

6098

2 57 1

7920 4092

3 3 1

8596 1849 5806

Sample Output 1

19 57

121 52

148 30

71 45

138 54

616 1

1935 1

2865 1

There are four test cases in the example test, the first test case’s converted points list is [(121, 52),(19, 57)]

and Little X wants us to sort it according to the first method.

So the resulting list of the first test case is [(19, 57),(121, 52)]. The processes of the other test cases

are similar.

You can find more samples in the attached file on BB.

Problem Scale & Subtasks

There are 5 tests in total, with the same weight.

Test Case No. Constraints

1 1 ≤ n ≤ 5, id = 1.

2 1 ≤ n ≤ 100, 1 ≤ k ≤ 105

, 1 ≤ id ≤ 2

3 1 ≤ n ≤ 1000, 1 ≤ k ≤ 105

, 1 ≤ id ≤ 4

4 1 ≤ n ≤ 104

, 1 ≤ k ≤ 105

, 1 ≤ id ≤ 4

5 1 ≤ n ≤ 105

, 1 ≤ k ≤ 105

, 1 ≤ id ≤ 4

Hint

Try to define the relationship between the points by the requirement.

2 Detecting Tyranids (50% of this assignment)

2.1 Description

There is a galaxy map with n × m grids in it, and there are p Tyranid squads, each squad has k

Tyranids and is located in grid (i, j).

Suppose each grid (i, j) contains ki,j Tyranids. Now, as a commander of Space Marine, you want to

know the expected number of Tyranids in any rectangle on the map.

Formally speaking, you want to know the result of the following expression given the information of p

Tyranid squads.

Xn

a=1

Xm

b=1

Xn

c=a

Xm

d=b

Xc

i=a

X

d

j=b

ki,j

Note this number may be very large, you only need to output the remainder of the result mod

998244353.

5

2.2 Input

The first line contains 3 integers n, m, and p(1 ≤ n, m, p ≤ 105

).

For the following p lines, each line contains 3 integers i(1 ≤ i ≤ n), j(1 ≤ j ≤ m), and k(1 ≤ k ≤ 109

).

2.3 Output

One line contains one integer representing the remainder of the result mod 998244353.

Sample Input 1

4 3 1

2 1 1

Sample Output 1

18

For the first example, there is only one non-zero ki,j , k2,1 = 1.

Note that for n = 4, m = 3, there are 18 rectangles containing the grid (2, 1).

Figure 1: explanation of example 1

The orange portion has 6 grids and the blue area has 3, while 18 = 6 × 3.

Sample Input 2

5 5 5

3 4 2

4 5 6

4 4 2

2 3 1

3 4 3

Sample Output 2

800

For the second example, we can list every non-zero ki,j .

k2,3 = 1, k3,4 = 5, k4,4 = 2, k4,5 = 6. Then the target expression has a result of 800.

You can find more samples in the attached file on BB.

Problem Scale & Subtasks

There are 10 tests in total, with the same weight.

Test Case No. Constraints

1-3 1 ≤ n, m, p ≤ 10, 1 ≤ k ≤ 10

4-6 1 ≤ n, m, p ≤ 100, 1 ≤ k ≤ 100

7 1 ≤ n, m, p ≤ 105

, k = 1

8-10 1 ≤ n, m, p ≤ 105

, 1 ≤ k ≤ 109

6

Hint

For C/C++ and Java users, an int type stores integers range from -2,147,483,648 to 2,147,483,647. It

may be too small for this problem. You need other data types, such as long long for C/C++ and long

for Java. They store integers ranging from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.

Use scanf("%lld",&n) for C, cin>>n for C++ and n = scanner.nextLong() for Java to get the

input n. And the other operations for long and long long are quite same as int.

Consider the number of grids containing one Tyranid, then consider how to combine all these numbers.

Remember to take modular after doing any arithmetic operations.

For instance, make sure for any a = b + c, you write it as a = (b + c) mod 998244353.

2.4 Extension

What if we want to calculate the variance?

7


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp