USACO2024年公开赛美国计算机奥赛竞赛铜奖组问题三——Farmer John's Favorite Permutation Return to Problem List

Farmer John has a permutation p of length N (2≤N≤105), containing each positive integer from 1 to N exactly once. However, Farmer Nhoj has broken into FJ's barn and disassembled p. To not be too cruel, FN has written some hints that will help FJ reconstruct p. While there is more than one element remaining in p
, FN does the following:

Let the remaining elements of p be p′1,p′2,…,p′n,

If p′1>p′n , he writes down p′2 and removes p′1 from the permutation.
Otherwise, he writes down p′n−1 and removes p′n from the permutation.

At the end, Farmer Nhoj will have written down N−1 integers h1,h2,…,hN−1, in that order. Given h, Farmer John wants to enlist your help to reconstruct the lexicographically minimum p consistent with Farmer Nhoj's hints, or determine that Farmer Nhoj must have made a mistake. Recall that if you are given two permutations p and p′, p is lexicographically smaller than p′ if pi<p′i at the first position i where the two differ.

INPUT FORMAT (input arrives from the terminal / stdin):

Each input consists of T independent test cases (1≤T≤10). Each test case is described as follows:

The first line contains N.

The second line contains N−1 integers h1,h2,…,hN−1 (1≤hiN).

OUTPUT FORMAT (print output to the terminal / stdout):

Output T lines, one for each test case.

If there is a permutation p of 1…N consistent with h, output the lexicographically smallest such p. If no such p exists, output −1.

SAMPLE INPUT:

5
2
1
2
2
4
1 1 1
4
2 1 1
4
3 2 1

SAMPLE OUTPUT:

1 2
-1
-1
3 1 2 4
1 2 3 4

For the fourth test case, if p=[3,1,2,4] then FN will have written down h=[2,1,1].

p' = [3,1,2,4]
p_1' < p_n' -> h_1 = 2
p' = [3,1,2]
p_1' > p_n' -> h_2 = 1
p' = [1,2]
p_1' < p_n' -> h_3 = 1
p' = [1]

Note that the permutation p=[4,2,1,3] would also produce the same h, but [3,1,2,4] is lexiocgraphically smaller.

For the second test case, there is no p consistent with h; both p=[1,2] and p=[2,1] would produce h=[1], not h=[2].

SCORING:

Input 2: N≤8
Inputs 3-6: N≤100
Inputs 7-11: No additional constraints.

Problem credits: Chongtian Ma

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛铜奖组问题二——Walking Along a Fence

Farmer John's N cows (1≤N≤105) each like to take a daily walk around the fence enclosing his pasture.

The fence consists of P posts (4≤P≤2⋅105, P even), the location of each being a different 2D point (x,y) on a map of FJ's farm (0≤x,y≤1000). Each post is connected to the two adjacent posts by fences that are either vertical or horizontal line segments, so the entire fence can be considered a polygon whose sides are parallel to the x or y axes (the last post connects back to the first post, ensuring the fence forms a closed loop that encloses the pasture). The fence polygon is "well-behaved" in that fence segments only potentially overlap at their endpoints, each post aligns with exactly two fence segment endpoints, and every two fence segments that meet at an endpoint are perpendicular.

Each cow has a preferred starting and ending position for her daily walk, each being points somewhere along the fence (possibly at posts, possibly not). Each cow walks along the fence for her daily walks, starting from her starting position and ending at her ending position. There are two routes that the cow could take, given that the fence forms a closed loop. Since cows are somewhat lazy creatures, each cow will walk in the direction around the fence that is shorter (if there is a tie, the cow may choose either direction).

Determine the distance that each cow walks.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line of input contains N and P. Each of the next P lines contains two integers representing the positions of the fence posts in clockwise or counterclockwise order. Each of the next N lines contains four integers  x1y1x2y2 representing the starting position (x1,y1) and ending position (x2,y2) of a cow.

OUTPUT FORMAT (print output to the terminal / stdout):

Write N integers as output, giving the distance that each cow walks.

SAMPLE INPUT:

5 4
0 0
2 0
2 2
0 2
0 0 0 2
0 2 1 0
2 1 0 2
1 0 1 2
1 2 1 0

SAMPLE OUTPUT:

2
3
3
4
4

The first cow can walk directly from (0,0) to (0,2).

The second cow can walk from (0,2) to (0,0) and then to (1,0).

The fourth cow has two possible routes with equal lengths: (1,0)→(0,0)→(0,2)→(1,2) and (1,0)→(2,0)→(2,2)→(1,2).

SCORING:

Inputs 2-6: 0≤x,y≤100 and N≤100
Inputs 7-11: No additional constraints.

Problem credits: Brian Dean

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛铜奖组问题一——Logical Moos

Farmer John has a boolean statement that is N keywords long (1≤N<2⋅105, N odd). Only true or false appear in odd positions, while only and and or appear in even positions.

A phrase of the form x OPERATOR y, where x and y are either true or false, and OPERATOR is and or or, evaluates as follows:

x and y: This evaluates to true if both x and y are true, and false otherwise.
x or y: This evaluates to true if either x or y is true, and false otherwise.

When evaluating the statement, FJ has to take the order of precedence in Moo Language into account. Similar to C++, and takes priority over or. More specifically, to evaluate the statement, repeat the following step until the statement consists of only one keyword.

1.If the statement contains an and, choose any of them and replace the phrase surrounding it with its evaluation.
2.Otherwise, the statement contains an or. Choose any of them and replace the phrase surrounding it with its evaluation.

It may be proven that if multiple phrases can be evaluated during a given step, it does not matter which one is chosen; the statement will always evaluate to the same value.

FJ has Q (1≤Q≤2⋅105 ) queries. In each query, he gives you two integers l and r (1≤lrN, l and r are both odd), and deletes the segment from keyword l to keyword r inclusive. In turn, he wishes to replace the segment he just deleted with just one simple true or false so that the whole statement evaluates to a certain boolean value. Help FJ determine if it's possible!

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N and Q.

The next line contains N strings, a valid boolean statement.

The following Q lines contain two integers l and r, and a string true or false, denoting whether he wants the whole statement to evaluate to true or false.

OUTPUT FORMAT (print output to the terminal / stdout):

Output a string of length Q, where the i'th character is Y if the i'th query is possible, otherwise N.

SAMPLE INPUT:

5 7
false and true or true
1 1 false
1 3 true
1 5 false
3 3 true
3 3 false
5 5 false
5 5 true

SAMPLE OUTPUT:

NYYYNYY

Let's analyze the first query:

If we were to replace delete the segment [1,1] and replace it with true, then the whole statement becomes:

true and true or true

We evaluate the and keyword from at position 2 and obtain

true or true

Since we have no and keywords left, we have to evaluate the or keyword. After evaluation, all that is left is

true

It can be shown that if we were to replace the segment with false, the statement will still evaluate to true, so we output N since the statement cannot possibly evaluate to false.

For the second query, we can replace the segment [1,3] with true and the whole statement will evaluate to true, so we output Y.

For the third query, since [1,5] is the whole statement, we can replace it with anything, so we output Y.

SAMPLE INPUT:

13 4
false or true and false and false and true or true and false
1 5 false
3 11 true
3 11 false
13 13 true

SAMPLE OUTPUT:

YNYY

SCORING:

Inputs 3-5: N,Q≤102
Inputs 6-8: N,Q≤103
Inputs 9-26: No additional constraints.

Problem credits: Chongtian Ma

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛银奖组问题三——The 'Winning' Gene

**Note: The memory limit for this problem is 512MB, twice the default.**

After years of hosting games and watching Bessie get first place over and over, Farmer John has realized that this can't be accidental. Instead, he concludes that Bessie must have winning coded into her DNA so he sets out to find this "winning" gene.

He devises a process to identify possible candidates for this "winning" gene. He takes Bessie's genome, which is a string S of length N where 1≤N≤3000. He picks some pair (K,L) where 1≤LKN representing that the "winning" gene candidates will have length L and will be found within a larger K length substring. To identify the gene, he takes all K length substrings from S
which we will call a k-mer. For a given k-mer, he takes all length L substrings, identifies the lexicographically minimal substring as a winning gene candidate (choosing the leftmost such substring if there is a tie), and then writes down the 0 -indexed position pi where that substring starts in S to a set P.

Since he hasn't picked K and L yet, he wants to know how many candidates there will be for every pair of (K,L).

For each v in 1…N, help him determine the number of (K,L) pairs with |P|=v.

INPUT FORMAT (input arrives from the terminal / stdin):

N representing the length of the string. S representing the given string. All characters are guaranteed to be uppercase characters where si∈A−Z since bovine genetics are far more advanced than ours.

OUTPUT FORMAT (print output to the terminal / stdout):

For each v in 1…N, output the number of (K,L) pairs with |P|=v, with each number on a separate line.

SAMPLE INPUT:

8
AGTCAACG

SAMPLE OUTPUT:

11
10
5
4
2
2
1
1

In this test case, the third line of the output is 5 because we see that there are exactly 5 pairs of K and L that allow for three "winning" gene candidates. These candidates are (where pi is 0-indexed):

(4,2) -> P = [0,3,4]
(5,3) -> P = [0,3,4]
(6,4) -> P = [0,3,4]
(6,5) -> P = [0,1,3]
(6,6) -> P = [0,1,2]

To see how (4,2) leads to these results, we take all 4-mers

AGTC
GTCA
TCAA
CAAC
AACG

For each 4-mer, we identify the lexicographically minimal length 2 substring

AGTC -> AG
GTCA -> CA
TCAA -> AA
CAAC -> AA
AACG -> AA

We take the positions of all these substrings in the original string and add them to a set P to get P=[0,3,4].

On the other hand, if we focus on the pair (4,1), we see that this only leads to 2 total "winning" gene candidates. If we take all 4-mers and identify the lexicographically minimum length 1 substring (using A and A' and A* to distinguish the different As), we get

AGTC -> A
GTCA' -> A'
TCA'A* -> A'
CA'A*C -> A'
A'A*CG -> A'

While both A' and A* are lexicographically minimal in the last 3 cases, the leftmost substring takes precedence so A' is counted as the only candidate in all of these cases. This means that P=[0,4].

SCORING:

Inputs 2-4: N≤100
Inputs 5-7: N≤500
Inputs 8-16: No additional constraints.

Problem credits: Suhas Nagar

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛银奖组问题二——Painting Fence Posts

**Note: The time limit and memory limit for this problem are 3s and 512MB, which are 1.5x and 2x the normal amount, respectively.**

Farmer John's N cows (1≤N≤105) each like to take a daily walk around the fence enclosing his pasture. Unfortunately, whenever a cow walks past a fence post, she brushes up against it, requiring Farmer John to need to repaint the fence posts regularly.

The fence consists of P posts (4≤P≤2⋅105, P even), the location of each being a different 2D point (x,y) on a map of FJ's farm (0≤x,y≤109). Each post is connected to the two adjacent posts by fences that are either vertical or horizontal line segments, so the entire fence can be considered a polygon whose sides are parallel to the x or y axes (the last post connects back to the first post, ensuring the fence forms a closed loop that encloses the pasture). The fence polygon is "well-behaved" in that fence segments only potentially overlap at their endpoints, each post aligns with exactly two fence segment endpoints, and every two fence segments that meet at an endpoint are perpendicular.

Each cow has a preferred starting and ending position for her daily walk, each being points somewhere along the fence (possibly at posts, possibly not). Each cow walks along the fence for her daily walks, starting from her starting position and ending at her ending position. There are two routes that the cow could take, given that the fence forms a closed loop. Since cows are somewhat lazy creatures, each cow will walk in the direction around the fence that is shorter. Remarkably, this choice is always clear -- there are no ties!

A cow touches a fence post if she walks past it, or if the fence post is the starting or ending point of her walk. Please help FJ calculate the number of daily touches experienced by each fence post, so he knows which post to repaint next.

It can be shown that there is exactly one possibility for the fences given the locations of all of the posts.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line of input contains N and P. Each of the next P lines contains two integers representing the positions of the fence posts in no particular order. Each of the next N lines contains four integers x1 y1 x2 y2 representing the starting position (x1,y1) and ending position (x2,y2)of a cow.

OUTPUT FORMAT (print output to the terminal / stdout):

Write P integers as output, giving the number of touches experienced by each fence post.

SAMPLE INPUT:

5 4
3 1
1 5
3 5
1 1
2 1 1 5
1 5 3 4
3 1 3 5
2 1 2 1
3 2 3 3

SAMPLE OUTPUT:

1
2
2
1

The following posts are connected by fence segments:

(3,1)↔(3,5)↔(1,5)↔(1,1)↔(3,1)

The posts touched by each cow are as follows:

1.Posts 2 and 4.
2.Posts 2 and 3.
3.Posts 1 and 3.
4.No posts.
5.No posts.

SAMPLE INPUT:

2 8
1 1
1 2
0 2
0 3
0 0
0 1
2 3
2 0
1 1 2 1
1 0 1 3

SAMPLE OUTPUT:

1
0
0
0
1
1
1
2

SAMPLE INPUT:

1 12
0 0
2 0
2 1
1 1
1 2
3 2
3 3
1 3
1 4
2 4
2 5
0 5
2 2 0 2

SAMPLE OUTPUT:

1
1
1
1
1
0
0
0
0
0
0
0

SCORING:

Inputs 4-6: N,P≤1000
Inputs 7-9: All locations satisfy 0≤x,y≤1000.
Inputs 10-15: No additional constraints.
Problem credits: Brian Dean

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛银奖组问题一——Bessie's Interview

Bessie is looking for a new job! Fortunately, K farmers are currently hiring and conducting interviews. Since jobs are highly competitive, the farmers have decided to number and interview cows in the order they applied. There are N cows that applied before Bessie, so her number is N+1(1≤KN≤3⋅105).

The interview process will go as follows. At time 0, farmer i will start interviewing cow i for each 1≤iK. Once a farmer finishes an interview, he will immediately begin interviewing the next cow in line. If multiple farmers finish at the same time, the next cow may choose to be interviewed by any of the available farmers, according to her preference.

For each 1≤iN, Bessie already knows that cow i's interview will take exactly ti minutes (1≤ti ≤109). However, she doesn't know each cow's preference of farmers.

Since this job is very important to Bessie, she wants to carefully prepare for her interview. To do this, she needs to know when she will be interviewed and which farmers could potentially interview her. Help her find this information!

INPUT FORMAT (input arrives from the terminal / stdin):

The first line of the input will contain two integers N and K.

The second line will contain Nintegers t1tN.

OUTPUT FORMAT (print output to the terminal / stdout):

On the first line, print the time Bessie's interview will begin.

On the second line, a bit string of length K, where the i-th bit is 1if farmer i could interview Bessie and 0 otherwise.

SAMPLE INPUT:

6 3
3 1 4159 2 6 5

SAMPLE OUTPUT:

8
110

There are 6 cows aside from Bessie and 3 farmers, and the interview process will go as follows:

1.At time t=0, farmer 1 interviews cow 1, farmer 2 interviews cow 2, and farmer 3 interviews cow 3.
2.At time t=1, farmer 2 finishes his interview with cow 2 and starts interviewing cow 4.
3.At time t=3, both farmer 1 and farmer 2 finish their interviews, and there are two possibilities:
Farmer 1 interviews cow 5 and farmer 2 interviews cow 6. In this case, farmer      2 would finish his interview at time t=8 and start interviewing Bessie.
Farmer 1 interviews cow 6 and farmer 2 interviews cow 5. In this case, farmer      1 would finish his interview at time t=8 and start interviewing Bessie.

Thus, Bessie's interview will begin at time t=8, and she could be interviewed by either farmer 1 or farmer 2.

SCORING:

Inputs 2-3: No two farmers finish at the same time.
Inputs 4-9: N≤3⋅103 
Inputs 10-21: No additional constraints.

Problem credits: Avnith Vijayram

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛金奖组问题三——Smaller Averages

Bessie has two arrays of length N(1≤N≤500). The i-th element of the first array is ai (1≤ai≤106) and the i-th element of the second array is bi (1≤bi≤106).

Bessie wants to split both arrays into non-empty subarrays such that the following is true.

1.Every element belongs in exactly 1 subarray.
2.Both arrays are split into the same number of subarrays. Let the number of subarrays the first and second array are split into be k (i.e. the first array is split into exactly k subarrays and the second array is split into exactly k subarrays).
3.For all 1≤ik, the average of the i-th subarray on the left of the first array is less than or equal to the average of the i-th subarray on the left of the second array.

Count how many ways she can split both arrays into non-empty subarrays while satisfying the constraints modulo 109+7. Two ways are considered different if the number of subarrays are different or if some element belongs in a different subarray.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N.

The next line contains al,a2,...,aN.

The next line contains b1,b2,...,bN.

OUTPUT FORMAT (print output to the terminal / stdout):

Output the number of ways she can split both arrays into non-empty subarrays while satisfying the constraints modulo 109+7.

SAMPLE INPUT:

2
1 2
2 2

SAMPLE OUTPUT:

2

The two valid ways are:

1.Split the first array into [1],[2] and the second array into [2],[2].
2.Split the first array into [1,2] and the second array into [2,2].

SAMPLE INPUT:

3
1 3 2
2 2 2

SAMPLE OUTPUT:

3

The three valid ways are:

1.Split the first array into [1,3],[2] and the second array into [2,2],[2].
2.Split the first array into [1,3],[2] and the second array into [2],[2,2].
3.Split the first array into [1,3,2] and the second array into [2,2,2].

SAMPLE INPUT:

5
2 5 1 3 2
2 1 5 2 2

SAMPLE OUTPUT:

1

The only valid way is to split the first array into [2],[5,1,3],[2] and the second array into [2],[1,5],[2,2].

SAMPLE INPUT:

7
3 5 2 3 4 4 1
5 3 5 3 3 4 1

SAMPLE OUTPUT:

140

SCORING:

Inputs 5-6: N≤10
Inputs 7-9: N≤80
Inputs 10-17: N≤300
Inputs 18-20: N≤500

Problem credits: Alex Liang

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛金奖组问题二——Grass Segments

Bessie is planting some grass on the positive real line. She has N (2≤N≤2⋅105) different cultivars of grass, and will plant the ith cultivar on the interval [i,ri](0<i<ri≤109).

In addition, cultivar i grows better when there is some cultivar j (ji) such that cultivar j and cultivar i overlap with length at least ki (0<kirii). Bessie wants to evaluate all of her cultivars. For each i, compute the number of ji such that j and ioverlap with length at least ki.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N.
The next N lines each contain three space-separated integers i, ri, and ki.

OUTPUT FORMAT (print output to the terminal / stdout):

The answers for all cultivars on separate lines.

SAMPLE INPUT:

2
3 6 3
4 7 2

SAMPLE OUTPUT:
0
1

The overlaps of the cultivars is [4,6], which has length 2, which is at least 2 but not at least 3.

SAMPLE INPUT:

4
3 6 1
2 5 1
4 10 1
1 4 1

SAMPLE OUTPUT:

3
3
2
2

SAMPLE INPUT:

5
8 10 2
4 9 2
3 7 4
5 7 1
2 7 1

SAMPLE OUTPUT:

0
3
1
3
3

SCORING:

Input 4-5: N≤5000
Inputs 6-11: k is the same for all intervals
Inputs 12-20: No additional constraints.
In addition, for Inputs 5, 7, ..., 19, ri≤2N for all i.

Problem credits: Benjamin Qi

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛金奖组问题一——Cowreography

The cows have formed a dance team, and Farmer John is their choreographer! The team's latest and greatest dance involves N cows (2≤N≤106 ) standing in a line. Each move in the dance involves two cows, up to K positions apart (1≤K<N
), gracefully jumping and landing in each other's position.

There are two types of cows in the line – Guernseys and Holsteins. As such, Farmer John has documented the dance as a sequence of length-N
binary strings, where a 0 represents a Guernsey, a 1 represents a Holstein, and the overall string represents how the cows are arranged in the line.

Unfortunately, Farmer Nhoj (who choreographs for a rival team) has sabotaged the dance and erased all but the first and last binary strings! With a big competition quickly approaching, Farmer John must waste no time in reconstructing the dance.

Given these two binary strings, help Farmer John find the minimum number of moves in the dance!

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N and K.

The second line contains the first binary string.

The third line contains the last binary string.

It is guaranteed that both binary strings contain the same number of ones.

OUTPUT FORMAT (print output to the terminal / stdout):

The minimum number of moves in the dance.

SAMPLE INPUT:

4 1
0111
1110

SAMPLE OUTPUT:

3

One possible dance:

0111 -> 1011 -> 1101 -> 1110

SAMPLE INPUT:

5 2
11000
00011

SAMPLE OUTPUT:

3

One possible dance:

11000 -> 01100 -> 00110 -> 00011

SAMPLE INPUT:

5 4
11000
00011

SAMPLE OUTPUT:

2

One possible dance:

11000 -> 10010 -> 00011

SCORING:

Inputs 4-5: K=1
Inputs 6-7: Both strings have at most 8
ones.
Inputs 8-15: N≤5000
Inputs 16-23: No additional constraints.

Problem credits: Benjamin Qi

扫码领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码

USACO2024年公开赛美国计算机奥赛竞赛白金奖组问题三——Activating Robots

You and a single robot are initially at point 0 on a circle with perimeter L
(1≤L≤109). You can move either counterclockwise or clockwise along the circle at 1 unit per second. All movement in this problem is continuous.

Your goal is to place exactly R−1 robots such that at the end, every two consecutive robots are spaced L/R away from each other (2≤R≤20, R
divides L). There are N (1≤N≤105) activation points, the ith of which is located ai distance counterclockwise from 0(0≤ai<L). If you are currently at an activation point, you can instantaneously place a robot at that point. All robots (including the original) move counterclockwise at a rate of 1 unit per K seconds (1≤K≤106).

Compute the minimum time required to achieve the goal.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains L, R, N, and K.
The next line contains N
space-separated integersa1,a2,…,aN.

OUTPUT FORMAT (print output to the terminal / stdout):

The minimum time required to achieve the goal.

SAMPLE INPUT:

10 2 1 2
6

SAMPLE OUTPUT:

22

We can reach the activation point at 6 in 4 seconds by going clockwise. At this time, the initial robot will be located at 2. Wait an additional 18 seconds until the initial robot is located at 1. Now we can place a robot to immediately win.

SAMPLE INPUT:

10 2 1 2
7

SAMPLE OUTPUT:

4

We can reach the activation point at 7 in 3 seconds by going clockwise. At this time, the initial robot will be located at 1.5. Wait an additional second until the initial robot is located at 2. Now we can place a robot to immediately win.

SAMPLE INPUT:

32 4 5 2
0 23 12 5 11

SAMPLE OUTPUT:

48

SAMPLE INPUT:

24 3 1 2
16

SAMPLE OUTPUT:

48

SCORING:

Inputs 5-6: R=2
Inputs 7-12: R≤10,N≤80
Inputs 13-20: R≤16
Inputs 21-24: No additional constraints.

Problem credits: Benjamin Qi

扫码免费领取USACO试题答案+详细解析

咨询一对一备赛规划

USACO竞赛考试网-二维码