阿里巴巴2019暑期实习生在线笔试(原创)

第一题:

题目描述:
有一台损坏的打地鼠机器,有3*3个地鼠洞,
机器启动,会随机起来任意位置的地鼠(起来1-9只地鼠都有可能),
但是打地鼠机现在出现了bug,打冒头的地鼠后,这只地鼠上下左右的地鼠一定会变化(起来的地鼠要下去,没起来的地鼠要起来)
如何在机器启动后,使用最少的步骤将所有的地鼠都‘敲’下去?
如果可以全部敲下去,那么输出使用的最少次数;如果不可以全部敲下去,那么输出‘-1’。

输入描述:
输入三行0,1数据;0表示这个位子地鼠潜藏在洞中,1表示这个位子的地鼠伸出脑袋,例如
1,1,0
0,0,1
0,0,1

输出描述:输出需要的最少步数(举一反三:这里可以增加难度输出需要敲击的地鼠洞位子

输入样例1:
1,1,0
0,0,1
0,0,1
输出样例1:2
可选输出样例1:
0,1,0
0,0,1
0,0,0

输入样例2:
1,1,1
1,1,1
1,1,1
输出样例2:5
可选输出样例2:
1,0,1
0,1,0
1,0,1

输入样例3:
0,0,0
0,0,0
0,0,0
输出样例3:-1
可选输出样例3:
由于没有地鼠冒头无法执行敲击
系统本身就是我们想要的全部潜入地洞状态

输入样例4:
0,1,0
1,0,1
0,1,0
输出样例4:4
可选输出样例4:
0,1,0
1,0,1
0,1,0

处理程序1:
方法一  遍历计算
将所有的可能出现的状况先计算出来,之后对原始的模型进行查找表查找对应的结果
 1 import copy
 2 from itertools import combinations
 3 
 4 # *** 辅助函数 *** #
 5 INDEX_DICT = {0: [0, 1, 3], 1: [0, 1, 2, 4], 2: [1, 2, 5],      # 选定节点,变换节点
 6               3: [0, 3, 4, 6], 4: [1, 3, 4, 5, 7], 5: [2, 4, 5, 8],
 7               6: [3, 6, 7], 7: [4, 6, 7, 8], 8: [5, 7, 8]}
 8 graph_zeros = [0 for i in range(9)]
 9 graph_index = [i for i in range(9)]
10 
11 
12 def graph2run(graph, index):  # 选择一个位置点进行其他位置的取反运行
13     for i in INDEX_DICT[index]:
14         if graph[i]:
15             graph[i] = 0
16         else:
17             graph[i] = 1
18     return graph
19 
20 
21 def list2bin(graph):     # 将数组转看成二进制字符串
22     str_ = ''
23     str_ = str_.join(map(str, graph))
24     return str_
25 
26 
27 def LIST2bin(LIST):
28     d1 = [0 for i in range(9)]
29     for i in LIST:
30         d1[i] += 1
31     d2 = ''
32     d2 = d2.join(map(str, d1))
33     return d2
34 
35 # *** 数据输入 *** #
36 graph = []
37 for i in range(3):
38     graph.extend(list(map(int, input().split(','))))
39 graph = list2bin(graph)
40 
41 
42 # *** 数据预处理 *** #
43 # 方法1 遍历计算
44 # 高时间复杂度,每次起手都需要计算一遍
45 MODE0_LIST = []
46 graph_result = {}
47 for i in range(1, 10):          # ①     获得需要敲击的位点
48     LIST = list(combinations(graph_index, i))
49     for j in LIST:
50         MODE0_LIST.append([x for x in j])
51 
52 for i in MODE0_LIST:            # ②     对需要敲击的位点list进行遍历
53     graph_mid = copy.deepcopy(graph_zeros)
54     for j in i:
55         graph_mid = graph2run(graph_mid, j)
56     num = list2bin(graph_mid)
57     d1 = copy.deepcopy(graph_zeros)
58     for j in i:
59         d1[j] += 1
60     graph_result[num] = list2bin(d1)
61 # print(graph_result)
62 graph_result['000000000'] = '000000000'   # 添加全零这种异常情况
63 str_out = graph_result[graph]
64 knock_index = list(str_out)
65 step_num = sum([int(x) for x in knock_index])
66 
67 # *** 数据输出 *** #
68 if step_num == 0:
69     print(-1)
70     print('由于没有地鼠冒头无法执行敲击\n系统本身就是我们想要的全部潜入地洞状态')
71 else:
72     print(step_num)
73     for i in range(3):
74         print(','.join(knock_index[i*3:(i+1)*3]))
View Code
备注:这个程序中使用函数库copy、combinations

处理程序2:
方法二  查找表
将方法一种的字典以字典数据的形式直接存在程序中或者文件中,每次直接读取查找即可
  1 # *** 辅助函数 *** #
  2 # 计算后图谱结果-key:地鼠模型;value:需要的最少步数;另外添加0这个没有地鼠冒头的情况key=0,value=-1
  3 graph_result = {'010101010':'010101010','000001101':'001011100','000110111':'001011011','100001101':'100010010',
  4                 '010000011':'100100010','011111010':'101110011','000101000':'101101101','110001010':'110111101',
  5                 '101111101':'010010010','000110001':'000000110','000010100':'100110111','101001101':'001110001',
  6                 '111000110':'001100111','000100110':'000000100','000111100':'001011010','001010010':'000001001',
  7                 '011000010':'010100100','001111100':'100111001','111100000':'001100011','010001111':'110011011',
  8                 '110100001':'111100101','111110010':'100001001','011000110':'100101001','110111101':'111100110',
  9                 '111101101':'000111111','100010010':'000100100','110101000':'000110100','011111000':'010100011',
 10                 '110011110':'010001010','101001011':'000101100','100011011':'111110101','000111011':'011100010',
 11                 '100010011':'011000001','100010110':'110101001','100101010':'111110011','111011000':'110110100',
 12                 '101100101':'100011100','010111011':'011110101','010100111':'011110110','000010010':'101101010',
 13                 '100111110':'011000100','101001111':'110100001','100111011':'110101100','010011100':'000010100',
 14                 '110000101':'000110001','110011011':'111100010','001001100':'111011010','101111111':'101000010',
 15                 '010111000':'111000000','001011011':'111011000','011000100':'011111001','001011010':'100111101',
 16                 '101110011':'111111011','101111010':'000101010','111010110':'011011101','010000110':'001001010',
 17                 '001100000':'100111010','110010110':'110111110','101101110':'100011101','011101111':'010100001',
 18                 '101110101':'110100110','100001001':'010011111','111110111':'001100001','100110010':'001111101',
 19                 '111111011':'011011000','100000111':'111110110','111001110':'101010011','000001010':'011100100',
 20                 '001110010':'001010000','110001100':'111100000','010001100':'010101110','111110110':'010000100',
 21                 '100101001':'011000110','011010001':'100101011','101110111':'001110110','101001010':'011001001',
 22                 '100101000':'000100011','011110001':'101110010','111001011':'000111011','000110100':'101101110',
 23                 '000100001':'010111100','001001101':'100111111','100001110':'000100111','011000011':'001000001',
 24                 '110010101':'010001011','000000010':'111010000','111000000':'000111010','001001011':'101100010',
 25                 '100100111':'110101111','110101111':'010001100','010110011':'111000001','001110000':'110000000',
 26                 '100011100':'101001101','100100101':'001111111','100000011':'001111011','100110001':'101001000',
 27                 '010011000':'110011001','111101110':'100001010','001010000':'111011001','110010011':'011010110',
 28                 '011011010':'100101010','001101011':'100111011','101000000':'000101101','111010101':'111101000',
 29                 '000000001':'011100101','101111011':'011001111','111101011':'001100010','111100010':'110110011',
 30                 '101000011':'100011000','000101001':'110001000','101100100':'111111001','100101110':'001111110',
 31                 '111001001':'111101011','000000111':'010111000','011101011':'100101100','110100011':'000110101',
 32                 '111010000':'010000000','110011111':'001101111','011010111':'101110110','101010001':'001110010',
 33                 '001011001':'000001000','010101101':'000010010','011110100':'000011010','110111000':'010001110',
 34                 '110001111':'011010101','011010110':'110010011','010000001':'011110010','001100011':'000001111',
 35                 '111011001':'101010001','001111101':'111011100','110011001':'000110010','101100001':'010010001',
 36                 '100111001':'001111100','010011011':'010101100','000111111':'101101111','011001011':'101110101',
 37                 '110101110':'001101001','100100100':'010011010','100011111':'001111000','100001100':'111110111',
 38                 '110100101':'001101000','100010001':'100010001','101101000':'101000000','011111110':'011111110',
 39                 '100101111':'010011011','101101001':'110100101','001110110':'111011101','001101010':'111011110',
 40                 '000101011':'001011000','001001110':'000001010','111001010':'011011110','110111110':'011010011',
 41                 '011001111':'011111000','101111000':'111111010','110010100':'001101110','000101010':'010111101',
 42                 '110101101':'101011100','110011000':'011010111','010000100':'110011010','111111000':'111101101',
 43                 '101010010':'101000111','111111001':'100001000','111000111':'010000010','001100110':'101100111',
 44                 '111110100':'101010100','010110110':'010101001','011100000':'100101101','101010111':'000101111',
 45                 '101000101':'101000101','010010110':'011110000','010000000':'000010111','101000010':'111111101',
 46                 '011100011':'000011000','000011100':'000000011','101110100':'101000011','101011111':'100011011',
 47                 '000111110':'110001010','010001101':'001001011','100000001':'110101011','010111101':'010101000',
 48                 '011000001':'110010001','010010111':'000010101','101010100':'100011010','111000011':'100001111',
 49                 '011001101':'100101000','101101111':'111111000','010011101':'011110001','111010100':'100001101',
 50                 '000110011':'111010110','100100011':'000100010','010011001':'101111100','000101110':'100110000',
 51                 '111111110':'110110000','111010011':'110110101','001110100':'000001101','000010110':'011100111',
 52                 '100110011':'010011000','001101111':'010110110','001000011':'001010110','011001010':'110010000',
 53                 '010110100':'101111001','101111100':'001110111','100100001':'111110010','110000010':'010001001',
 54                 '000110101':'110001011','001001111':'011101111','100000000':'101001110','000010001':'001011111',
 55                 '010100010':'110011110','100100110':'101001010','011010100':'001000011','000011101':'011100110',
 56                 '010100110':'000010011','010001110':'101111110','110001011':'101011000','011011100':'101110111',
 57                 '001001000':'001010111','010111100':'001001101','100011001':'000100101','001001010':'110000111',
 58                 '011001110':'000011101','111100100':'111101110','110101100':'110111001','111011011':'010000001',
 59                 '001110001':'101100101','010110001':'000010001','001111001':'001010001','111101000':'101010111',
 60                 '010101110':'100100111','110110100':'000110111','100000110':'100010011','100110111':'100010101',
 61                 '001010111':'101100001','011100010':'011111101','100111000':'010011001','101001000':'100011001',
 62                 '011100001':'111001000','001111011':'110000001','011101001':'011111100','111010010':'101010000',
 63                 '111011110':'111101001','001111000':'010110100','000001100':'010111001','000000101':'101101000',
 64                 '010101011':'001001111','111011100':'000111001','010100100':'111000011','101101100':'011001101',
 65                 '001000101':'000001011','011111001':'001000110','111000001':'011011111','001001001':'010110010',
 66                 '110110101':'011010010','110110110':'111100111','010100001':'010101011','010101100':'011110111',
 67                 '111110011':'111101100','110110010':'001101010','101001110':'101000100','110111010':'101011110',
 68                 '000010011':'110001111','110111111':'000110110','001111110':'011101001','110000001':'110111100',
 69                 '100111111':'000100001','110011010':'100000111','011110011':'010100010','110100000':'100000000',
 70                 '001110101':'011101000','001000010':'010110011','010000101':'101111111','010010000':'010101101',
 71                 '110011101':'110111111','010001011':'000010110','011001000':'001000000','000111001':'100110010',
 72                 '010001010':'011110011','110100111':'110111000','100110110':'111110000','001101101':'101100110',
 73                 '100100010':'011000111','100011101':'110101000','100000100':'011000011','001100001':'111011111',
 74                 '000100000':'001011001','010111110':'110011101','111100001':'010000110','101011001':'101000110',
 75                 '101001001':'111111100','100111101':'111110001','111101111':'111101111','000001000':'100110100',
 76                 '111100111':'011011011','010010010':'101111101','111100110':'000111110','100110000':'110101101',
 77                 '110001000':'001101101','000000110':'001011101','010110010':'100100100','001011100':'101100000',
 78                 '010101000':'101111010','111011111':'100001100','110101010':'111100100','101100111':'011001100',
 79                 '011000101':'000011100','001111010':'101100100','110001110':'000110000','110100010':'011010000',
 80                 '110000111':'111100001','001000100':'011101110','101000100':'110100000','100111100':'100010100',
 81                 '010100011':'101111011','011010010':'000011110','000011000':'110001110','101111001':'100011111',
 82                 '001101000':'000001110','001011111':'001010101','011010101':'010100110','011010000':'111001110',
 83                 '000100011':'101101100','001010001':'100111100','011101000':'000011001','010010101':'111000101',
 84                 '111000100':'110110111','010011111':'100100001','111100101':'100001011','110000000':'101011001',
 85                 '011101100':'110010100','101010011':'110100010','100001000':'001111010','011000111':'111001100',
 86                 '001100111':'110000010','011010011':'011111011','110100110':'101011101','000010101':'111010010',
 87                 '110001001':'010001000','101100010':'110100100','000001011':'000000001','010011010':'001001001',
 88                 '000011110':'111010011','101110110':'010010011','001000111':'111011011','101001100':'010010100',
 89                 '010010001':'001001000','000110010':'100110011','101100011':'101000001','110010010':'000110011',
 90                 '000001110':'101101001','101110000':'011001110','100010101':'010011100','101011010':'001110011',
 91                 '110111011':'110111011','010100101':'100100110','100010000':'111110100','000011010':'001011110',
 92                 '110101011':'100000001','001010101':'010110001','011111100':'100101110','001011110':'010110000',
 93                 '000101101':'000000101','100001010':'110101010','101100110':'000101001','001100101':'001010010',
 94                 '011011001':'000011111','000100101':'100110001','000110110':'010111110','001011101':'110000101',
 95                 '111000101':'101010010','110111001':'001101011','101110010':'100011110','011100100':'010100000',
 96                 '011001100':'111001101','000100111':'011100001','100000010':'010011110','110010000':'111100011',
 97                 '101101011':'001110101','011110010':'001000111','011111011':'110010110','101101010':'010010000',
 98                 '100011000':'011000000','111111111':'101010101','011000000':'101110100','101011100':'000101110',
 99                 '001110111':'100111000','011011111':'001000010','011101110':'001000100','010001000':'100100011',
100                 '101100000':'001110100','010010011':'110011000','110110011':'010001111','011110000':'110010111',
101                 '101010000':'010010111','101000110':'001110000','001010100':'001010100','010110111':'001001100',
102                 '100101100':'110101110','110011100':'101011010','111101100':'011011010','111011010':'001100100',
103                 '011100110':'101110000','010001001':'111000110','001011000':'011101101','101111110':'110100111',
104                 '011100111':'110010101','111010111':'000111000','100111010':'101001001','100101011':'100010110',
105                 '011111111':'000011011','110111100':'100000011','100001111':'011000010','111000010':'111101010',
106                 '101101101':'000101000','100010111':'101001100','100101101':'101001011','110000110':'100000100',
107                 '110001101':'100000101','000001001':'111010001','011011011':'111001111','100100000':'100010111',
108                 '000111101':'010111111','011011101':'110010010','000000100':'110001101','101011011':'010010110',
109                 '011100101':'001000101','001101001':'011101011','101000001':'011001000','010111010':'000010000',
110                 '110100100':'010001101','010101111':'111000010','100110100':'000100000','111111100':'001100000',
111                 '111101001':'110110010','100110101':'011000101','111111101':'010000101','010011110':'111000100',
112                 '011101010':'111001001','000011111':'100110110','101010101':'111111111','000100100':'111010100',
113                 '110010001':'100000110','000010111':'000000010','101011000':'110100011','111101010':'010000111',
114                 '000111000':'111010111','111100011':'101010110','100010100':'001111001','001100010':'011101010',
115                 '111001000':'100001110','000011011':'010111011','001000000':'101100011','011011000':'011111010',
116                 '000000011':'100110101','000100010':'110001001','110110001':'101011111','001110011':'010110101',
117                 '010000010':'111000111','011001001':'010100101','000101111':'111010101','001100100':'010110111',
118                 '101110001':'000101011','001101110':'001010011','111001111':'110110110','100011110':'010011101',
119                 '011110101':'011111111','101011110':'111111110','110101001':'011010001','101011101':'011001011',
120                 '010101001':'110011111','100000101':'000100110','000110000':'011100011','010100000':'001001110',
121                 '111110101':'110110001','010010100':'100100000','010110000':'011110100','000011001':'101101011',
122                 '110110111':'100000010','111010001':'001100101','001000001':'110000110','101010110':'011001010',
123                 '111001100':'010000011','010111111':'101111000','001000110':'100111110','110010111':'101011011',
124                 '000010000':'010111010','011110110':'111001010','001101100':'110000011','111110000':'011011001',
125                 '011111101':'111001011','000101100':'011100000','111110001':'000111100','001111111':'000001100',
126                 '011110111':'100101111','111111010':'000111101','100001011':'101001111','100011010':'100010000',
127                 '000001111':'110001100','010110101':'110011100','111001101':'001100110','110000011':'001101100',
128                 '110000100':'011010100','011011110':'010100111','011101101':'101110001','001010110':'110000100',
129                 '001010011':'011101100','101000111':'010010101','110110000':'110111010','010111001':'100100101',
130                 '010000111':'010101111','000111010':'000000111','111011101':'011011100','000000000':'000000000'}
131 
132 
133 def list2bin(graph):     # 将数组转看成二进制字符串
134     str_ = ''
135     str_ = str_.join(map(str, graph))
136     return str_
137 
138 
139 # *** 数据输入 *** #
140 graph = []
141 for i in range(3):
142     graph.extend(list(map(int, input().split(','))))
143 graph = list2bin(graph)
144 
145 
146 # *** 数据预处理 *** #
147 # 方法2 查找表方法
148 # 以字典数据的形式直接存在程序中或者文件中,每次直接读取查找即可
149 str_out = graph_result[graph]
150 knock_index = list(str_out)
151 step_num = sum([int(x) for x in knock_index])
152 
153 
154 # *** 数据输出 *** #
155 if step_num == 0:
156     print(-1)
157     print('由于没有地鼠冒头无法执行敲击\n系统本身就是我们想要的全部潜入地洞状态')
158 else:
159     print(step_num)
160     for i in range(3):
161         print(','.join(knock_index[i*3:(i+1)*3]))
 

第二题:

题目描述:
有一篇无边界的海洋,海洋里分布着若干个小岛,这些小岛通过单向桥连接。
每座小岛上有探路机器人,根据外部指令,按照指定的模式经过单向桥向外探索路径。
为了降低复杂度,命令通过字符串表示,由三个字母组成,每个字母可以从A、B、C中任意选择,这些字母只用于判断路径上的小岛是否相同,无其他排序等任何含义。
探路机器人在寻找模式的路径时,同一条路径的小岛可以重复,但是单向桥不可重复。
探路机器人完成一条路径探索后,自动返回起点岛屿重新探索路径,直到所有满足模式的路径探索完成为止。
例如存在以下的小岛和单向桥,有向边为单向桥

模式命令AAB或者BBC等命令等价,可以获得1,E1,1E3,2、1,E1,1,E4,2、1,E2,1、1,E2,1E4,2 共4条路径;
模式命令BBB或者CCC等命令等价,可以获得1,E1,1,E2,1、1,E2,1,E1,1 共2条路径;
模式命令ABC或者CBA或者BAC等命令等价,可以获得1,E4,2,E7,4、1,E3,3,E6,5、1,E3,3,E6,5、3,E5,2,E7,4 共4条路径。
根据指定的输入,请计算所有机器人一共能探索出多少条不同的路径。

输入描述:
① 先输入一个N,表示N条单向桥
② 在连续输入N个单向桥的信息,输入格式为 1,E3,3 (其中1和3表示小岛的名称,E3表示单向桥的名称,意义E3单向桥由小岛1指向小岛3)
③ 输入模式命令,例如AAA,AAB

输入样例1:
7
1,E1,1
1,E2,1
1,E3,3
1,E4,2
3,E5,2
3,E6,5
2,E7,4
AAA 输出样例1:2
AAB 输出样例1:4
ABA 输出样例1:0
BAA 输出样例1:0
ACB 输出样例1:4

处理程序:
  1 # *** 辅助函数 *** #
  2 def AMN_Math(M, N):  # M 基底、 N 子数
  3     t0, t1 = 1, 1
  4     for i in range(1, M + 1):
  5         t0 *= i
  6     for i in range(1, M - N + 1):
  7         t1 *= i
  8     return int(t0 / t1)
  9 
 10 
 11 # *** 数据输入 *** #
 12 NODESPACE = []
 13 ROADSPACE = []
 14 N = int(input())
 15 d0 = []
 16 for i in range(N):
 17     d_mid = list(input().split(','))
 18     d_mid[0] = int(d_mid[0])
 19     d_mid[2] = int(d_mid[2])
 20     if d_mid[0] not in NODESPACE:
 21         NODESPACE.append(d_mid[0])
 22 
 23     if d_mid[1] not in ROADSPACE:
 24         ROADSPACE.append(d_mid[1])
 25 
 26     if d_mid[2] not in NODESPACE:
 27         NODESPACE.append(d_mid[2])
 28     d0.append(d_mid)
 29 ABC = input()
 30 
 31 
 32 # *** 数据处理 *** #
 33 #   ①   将命令解析
 34 if ABC[0] == ABC[1] and ABC[1] == ABC[2]:  # AAA
 35     order = 0
 36 elif ABC[0] == ABC[1] and ABC[1] != ABC[2]:  # AAB
 37     order = 1
 38 elif ABC[0] == ABC[2] and ABC[1] != ABC[2]:  # ABA
 39     order = 2
 40 elif ABC[0] != ABC[1] and ABC[1] == ABC[2]:  # BAA
 41     order = 3
 42 else:
 43     order = 4
 44 
 45 graph = [[0 for x in range(len(NODESPACE))] for x in range(len(NODESPACE))]
 46 for i in range(N):
 47     x, y = d0[i][0] - 1, d0[i][2] - 1
 48     graph[x][y] += 1
 49 
 50 #   ③   执行探路过程
 51 sum = 0
 52 state = 0
 53 if order == 0:  # aaa   正确
 54     for i in range(len(NODESPACE)):
 55         if graph[i][i] == 2:
 56             sum += 2
 57         elif graph[i][i] > 2:
 58             sum += AMN_Math(graph[i][i], 2)
 59 
 60 elif order == 1:  # aab   正确
 61     for i in range(len(NODESPACE)):
 62         sum_mid = 0
 63         if graph[i][i] >= 1:
 64             sum_mid += graph[i][i]
 65             state = 1
 66 
 67         if state:  # 再寻找一个节点即可
 68             for j in range(len(NODESPACE)):
 69                 if j == i:  # 如果相同就跳出本次循环
 70                     continue
 71                 sum += sum_mid * graph[i][j]
 72 
 73 elif order == 2:  # aba     正确
 74     for i in range(len(NODESPACE)):
 75         sum_mid = 0
 76         for j in range(len(NODESPACE)):
 77             if i == j:  # 直接跳过内循环节点
 78                 continue
 79             if graph[i][j] >= 1:
 80                 sum_mid = graph[i][j]
 81                 sum += sum_mid*graph[j][i]
 82 
 83 elif order == 3:  # baa     正确
 84     for i in range(len(NODESPACE)):
 85         sum_mid = 0
 86         for j in range(len(NODESPACE)):
 87             if i == j:  # 直接跳过内循环节点
 88                 continue
 89             if graph[i][j] >= 1:
 90                 sum_mid = graph[i][j]
 91                 sum += sum_mid * graph[j][j]
 92 
 93 elif order == 4:  # abc
 94     for i in range(len(NODESPACE)):
 95         sum_mid = 0
 96         for j in range(len(NODESPACE)):
 97             if i == j:  # 跳出内循环
 98                 continue
 99             if graph[i][j] >= 1:
100                 sum_mid = graph[i][j]
101             for k in range(len(NODESPACE)):
102                 if k == i or k == j:    # 如果节点重复跳出本次循环
103                     continue
104                 sum += sum_mid*graph[j][k]
105 
106 print(sum)
107 
108 '''
109 输入样例1:
110 7
111 1,E1,1
112 1,E2,1
113 1,E3,3
114 1,E4,2
115 3,E5,2
116 3,E6,5
117 2,E7,4
118 AAB
119 输出样例1:4
120 '''

猜你喜欢

转载自www.cnblogs.com/Mufasa/p/10705760.html