python初体验 ——>>> 模拟体育竞技

一、排球训练营

1. 简介: 模拟不同的两个队伍进行排球的模拟比赛。

2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ),最后输出模拟的结果( O )。

P 简介:通过产生随机数得到每局比赛的难度,若小于能力值则表示赢得本局比赛,反之输掉本局比赛。

3. 规则简介:

① 每场比赛采用 5局3胜制。

② 前四局采用25分制,每个队只有在赢得至少25分,且同时超过对方2分时才胜一局。

③ 决胜局(第五局)采用15分制,先获得15分,且同时超过对方2分为胜。

4. 准备就绪,就差代码来实现了

插入代码之前,先对代码做个简单的介绍:

函数名称

函数说明

printInfo()

打印程序的介绍信息

getInputs()

获得用户输入的参数

printResult(n, winsA, winsB)

输出模拟比赛的结果

simNGames(n, probA, probB)

模拟n场比赛

simOneGame(probA, probB)

模拟一场比赛,包括五局,采取五局三胜制

simAGame(N, probA, probB)

模拟一局比赛

GameOver(N, scoreA, scoreB)

定义一局比赛的结束条件

好了,看看代码吧,虽然有点长,但应该可以看懂 ^_^

1 #-*- encoding:utf-8 -*-

2 '''

3 模拟排球竞技4 @author: bpf5 '''

6 #比赛规则:

7 #1. 采用5局3胜制

8 #2. 前四局采用25分制,每个队只有在赢得至少25分,且同时超过对方2分时才胜一局

9 #3. 决胜局(第五局)采用15分制,先获得15分,且同时超过对方2分为胜

10

11 from random importrandom12 from time importtime13 defprintInfo():14 '''

15 function: 打印程序的介绍信息16 '''

17 print("{:*^70}".format("产品简介"))18 print("产品名称: 排球竞技模拟分析器")19 print("产品概述: 通过输入2个队伍A和B的能力值(0到1之间的小数表示),能够模拟多次2个队伍A和B的排球竞技比赛,从而得出各自的胜率!")20 print("产品作者: 步平凡 - 04")21 print("{:*^70}".format("模拟开始"))22

23 defgetInputs():24 '''

25 function: 获得用户输入的参数26 '''

27 probA = eval(input("请输入队伍A的能力值(0~1):"))28 probB = eval(input("请输入队伍B的能力值(0~1):"))29 n = eval(input("请输入需要模拟比赛的场次数:"))30 returnprobA, probB, n31

32 defprintResult(n, winsA, winsB):33 '''

34 function: 输出模拟比赛的结果35 '''

36 print("{:*^70}".format("模拟结束"))37 print("竞技分析开始,共模拟{}场比赛。".format(n))38 print(">>>队伍A获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))39 print(">>>队伍B获胜{}场比赛,占比{:0.1%}".format(winsB,winsB/n))40

41 defsimNGames(n, probA, probB):42 '''

43 function: 模拟n场比赛44 n: 模拟n场比赛45 probA, probB: 分别为队伍A和B的能力值46 winA, winB: 队伍A和B在一场比赛中获胜的局数47 winsA, winsB: 队伍A和B赢得比赛的场数,总共n场48 '''

49 winsA, winsB =0, 050 for _ inrange(n):51 winA, winB =simOneGame(probA, probB)52 if winA >winB:53 winsA += 1

54 else:55 winsB += 1

56 returnwinsA, winsB57

58 defsimOneGame(probA, probB):59 '''

60 function: 模拟一场比赛,包括五局,采取五局三胜制61 probA, probB: 分别为队伍A和B的能力值62 return: 返回队伍A和B在本场比赛中获胜的局数63 scoreA, scoreB: 分别为队伍A和B一局比赛获得的分数64 winA, winB: 分别为队伍A和B一场比赛获胜的局数65 N: 代表本次比赛的局次66 '''

67 winA, winB =0, 068 for N in range(5):69 scoreA, scoreB =simAGame(N, probA, probB)70 if scoreA >scoreB:71 winA += 1

72 else:73 winB += 1

74 if winA == 3 or winB == 3:75 break

76 returnwinA, winB77

78 defsimAGame(N, probA, probB):79 '''

80 function: 模拟一局比赛81 N: 代表本次比赛的局次82 probA, probB: 分别为队伍A和B的能力值83 return: 返回队伍A和B在本局比赛中获得的分数84 '''

85 scoreA, scoreB = 0, 0 #分别为队伍A和B一局比赛获得的分数

86 serving = 'A' #发球方

87 while notGameOver(N, scoreA, scoreB):88 if serving == 'A':89 if random() >probA:90 scoreB += 1

91 serving = 'B'

92 else:93 scoreA += 1

94 else:95 if random() >probB:96 scoreA += 1

97 serving = 'A'

98 else:99 scoreB += 1

100 returnscoreA, scoreB101

102 defGameOver(N, scoreA, scoreB):103 '''

104 function: 定义一局比赛的结束条件105 N: 代表当前局次(第五局为决胜局)106 return: 若比赛结束的条件成立返回真,否则为假107 '''

108 if N <= 4:109 return (scoreA>=25 and abs(scoreA-scoreB)>=2) or (scoreB>=25 and abs(scoreA-scoreB)>=2)110 else:111 return (scoreA>=15 and abs(scoreA-scoreB)>=2) or (scoreB>=15 and abs(scoreA-scoreB)>=2)112

113 if __name__ == "__main__":114 printInfo()115 probA, probB, n =getInputs()116 Time =time()117 winsA, winsB =simNGames(n, probA, probB)118 print("模拟用时: {:.1f}s".format(time()-Time))119 printResult(n, winsA, winsB)

5. 运行结果展示,为了查看方便,我在cmd中运行代码

二、足球训练基地

1. 简介: 模拟不同的两个队伍进行足球的模拟比赛。

2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ),最后输出模拟的结果( O )。

P 简介:通过产生随机数得到半场比赛的回合数,再通过产生随机数得到每回合比赛的难度,若小于能力值则表示赢得本局比赛,反之输掉本场比赛。

3. 规则简介:

① 比赛分为两半场,每场为45分钟。

上半场: 一方挑选进攻的球门,另一方获得开球权;

下半场: 互换攻守方向,上半场没获得开球权的一方获得开球权。

②在进球后开球时,开球方为失球一方。

③ 比赛结束时得分多的球队获胜,如果两队得分相同或均未得分,比赛为平局。

4. 代码实现

By the way, 此代码与上述主要不同之处在于: GameOver(),其他函数都类似

函数名称

函数说明

printInfo()

打印程序的介绍信息

getInputs()

获得用户输入的参数

printResult(n, winsA, winsB)

输出模拟比赛的结果

simNGames(n, probA, probB)

模拟n场比赛

simOneGame(probA, probB)

模拟一场比赛,包括上半场和下半场

simAGame(N, probA, probB)

模拟半场比赛

GameOver(N, scoreA, scoreB)

定义半场比赛的结束条件

1 #-*- encoding:utf-8 -*-

2 '''

3 模拟足球竞技4 @author: bpf5 '''

6 #比赛规则:

7 #1. 比赛分为两场,每场为45分钟

8 #上半场: 一方挑选进攻的球门,另一方获得开球权

9 #下半场: 互换攻守方向,上半场没获得开球权的一方获得开球权

10 #2. 在进球后开球时,开球方为失球一方

11 #3. 在没有违反任何比赛规则时,进攻球队得分。

12 #4. 比赛结束时得分多的球队获胜,如果两队得分相同或均未得分,比赛为平局。

13

14 from random importrandom, randint15 from time importtime16 defprintInfo():17 '''

18 function: 打印程序的介绍信息19 '''

20 print("{:*^70}".format("产品简介"))21 print("产品名称: 足球竞技模拟分析器")22 print("产品概述: 通过输入2个队伍A和B的能力值(0到1之间的小数表示),能够模拟多次2个队伍A和B的排球竞技比赛,从而得出各自的胜率!")23 print("产品作者: 步平凡 - 04")24 print("{:*^70}".format("模拟开始"))25

26 defgetInputs():27 '''

28 function: 获得用户输入的参数29 '''

30 probA = eval(input("请输入队伍A的能力值(0~1):"))31 probB = eval(input("请输入队伍B的能力值(0~1):"))32 n = eval(input("请输入需要模拟比赛的场次数:"))33 returnprobA, probB, n34

35 defprintResult(n, via, winsA, winsB):36 '''

37 function: 输出模拟比赛的结果38 '''

39 print("{:*^70}".format("模拟结束"))40 print("竞技分析开始,共模拟{}场比赛。".format(n))41 print(">>>队伍A获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))42 print(">>>队伍B获胜{}场比赛,占比{:0.1%}".format(winsB,winsB/n))43 print(">>>两队平局{}场,占比{:0.1%}".format(via,via/n))44

45 defsimNGames(n, probA, probB):46 '''

47 function: 模拟n场比赛48 n: 模拟n场比赛49 probA, probB: 分别为队伍A和B的能力值50 winsA, winsB: 队伍A和B赢得比赛的场数,总共n场51 '''

52 via, winsA, winsB =0, 0, 053 for _ inrange(n):54 scoreA, scoreB =simOneGame(probA, probB)55 if scoreA ==scoreB:56 via += 1

57 elif scoreA >scoreB:58 winsA += 1

59 else:60 winsB += 1

61 returnvia, winsA, winsB62

63 defsimOneGame(probA, probB):64 '''

65 function: 模拟一场比赛, 分上半场和下半场66 probA, probB: 分别为队伍A和B的能力值67 scoreA, scoreB: 分别为队伍A和B一场比赛的分数68 return: 返回队伍A和B在本场比赛中获得的分数69 '''

70 winA, winB =0, 071 for N in range(2):72 scoreA, scoreB =simAGame(N, probA, probB)73 winA +=scoreA74 winB +=scoreB75 returnwinA, winB76

77 defsimAGame(N, probA, probB):78 '''

79 function: 模拟半场比赛80 probA, probB: 分别为队伍A和B的能力值81 scoreA, scoreB: 分别为队伍A和B半场比赛的分数82 return: 返回队伍A和B在本半场比赛中获得的分数83 '''

84 scoreA, scoreB =0, 085 if N ==0:86 serving = 'A' #发球方

87 else:88 serving = 'B'

89 for _ inrange(gameOver()):90 if serving == 'A':91 if random() <92 scorea>

93 serving = 'B'

94 else:95 if random() <96 scoreb>

97 serving = 'A'

98 returnscoreA, scoreB99

100 defgameOver():101 '''

102 function: 定义半场比赛的结束条件103 通过randint产生一个随机数作为半场比赛的回合数, 若达到半场比赛的回合数则结束比赛104 return: 若比赛结束的条件成立返回真,否则为假105 '''

106 return randint(3, 10)107

108 if __name__ == "__main__":109 printInfo()110 probA, probB, n =getInputs()111 Time =time()112 via, winsA, winsB =simNGames(n, probA, probB)113 print("模拟用时: {:.1f}s".format(time()-Time))114 printResult(n, via, winsA, winsB)

5. 运行结果展示,为了查看方便,我仍在cmd中运行代码

三、晋级模拟

1. 简介: 前2次分别对于排球和足球的模拟比赛分析,比赛规则的差距 体现 在代码上的不同,所以本次模拟分析多支队伍进行乒乓球比赛。

2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ),最后输出模拟的结果( O )。

P 简介:通过产生随机数得到每局比赛的难度,若小于能力值则表示赢得本局比赛,反之输掉本局比赛。当有多个队伍时,采取两两配对,但只遍历一次,因此,本代码功能不完善,仅供参考。

3. 规则简介:

①  一场比赛: 单打:采用七局四胜制; 双打淘汰赛、团体赛:采用五局三胜制。

② 一局比赛: 先得11分为胜,10平后,多得2分为胜

③ 一局比赛: 每队发球2次后,接发球方即成为发球方,依此类推,直至该局比赛结束 或者 到双方比分都达到10分时,发球和接发次序仍然不变,但每队只轮发一次球

4. 代码实现

本次代码与上述不同,本次采用类的方法来实现,不过基于本人对于乒乓球不熟悉及python用法有限,本次代码的功能有所限制,只能模拟数量为偶数的队伍进行比赛。待技术提升,会对代码进行改善和加强。

1 #-*- encoding:utf-8 -*-

2 '''

3 模拟乒乓球竞技4 @author: bpf5 '''

6 #比赛规则:

7 #1. 一场比赛: 单打:采用七局四胜制

8 #双打淘汰赛、团体赛:采用五局三胜制

9 #2. 一局比赛: 先得11分为胜,10平后,多得2分为胜

10 #3. 一局比赛: 每队发球2次后,接发球方即成为发球方,依此类推,直至该局比赛结束

11 #或者到双方比分都达到10分时,发球和接发次序仍然不变,但每队只轮发一次球

12

13 from random importrandom14 from pandas importDataFrame15 from time importtime16 classSportCompetitionAnalyze:17

18 defPrintInfo(self):19 '''

20 function: 打印程序的介绍信息21 '''

22 print("{:*^70}".format("产品简介"))23 print("产品名称: 乒乓球竞技模拟分析器(采取单打淘汰赛制)")24 print("产品概述: 通过输入多个队伍的能力值(0到1之间的小数表示),能够模拟多次多个队伍的乒乓球竞技比赛,从而得出各自的胜率!")25 print("产品作者: 步平凡 - 04")26 print("{:*^70}".format("模拟开始"))27

28 defGetInputs_for_Singal(self):29 '''

30 function: 获得用户输入的参数 获得单打各队员的能力值31 '''

32 self.n = eval(input("请输入需要模拟比赛的场数:"))33 self.probAbilityList_Original = list(map(eval, input("(注:通过输入的次序进行两两配对, 即前两个分别为队员A和B;以此类推。)\n\34 请输入各队员的能力值(0~1), 请用英文逗号隔开(输入个数为2的倍数):").split(',')))35 self.probAbilityList =self.probAbilityList_Original36 self.probNum =len(self.probAbilityList)37

38 defGetInputs_for_Double(self):39 '''

40 function: 获得用户输入的参数 获得双打各队伍各队员的能力值41 probAbilityList: 使用各队伍中两队员的平均能力值作为该队伍的能力值 --- 双打42 probAbilityList_Original: 存储原生的各队员能力值, 后续可用43 '''

44 self.probAbilityList, self.probAbilityList_Original =[], []45 self.n = eval(input("请输入需要模拟比赛的场数:"))46 Original = list(map(eval, input("(注:通过输入的次序进行四四配对, 即前四个为队伍A和B;以此类推。)\n\47 请输入各队员的能力值(0~1), 请用英文逗号隔开(输入个数为4的倍数):").split(',')))48 for i in range(0, len(Original), 2):49 self.probAbilityList.append((Original[i] + Original[i+1])/2)50 self.probAbilityList_Original.append(list([Original[i], Original[i+1]]))51 self.probNum =len(self.probAbilityList)52

53 defPrintResult(self):54 '''

55 function: 输出模拟比赛的结果56 data: 存储每支的比赛信息57 '''

58 print("{:*^70}".format("模拟结束"))59 print("竞技分析结束,每组共模拟{}场比赛。".format(self.n))60 data =[]61 for i inrange(self.probNum):62 tmplist =[]63 tmplist.append(self.probAbilityList_Original[i]) #存储能力值

64 tmplist.append(self.probwinsList[i]) #存储获胜的场数

65 tmplist.append(self.probwinsList[i]/self.n) #存储胜率

66 data.append(tmplist)67 dataSheet = DataFrame(data , index=list(range(1, self.probNum+1)), columns=list(["Ability", "wins", "rate"]))68 #dataSheet.sort_values(by="wins", inplace=True) # 对比赛胜率rate进行排序, 会混乱比赛队伍的关系, 因此不采用

69 print(dataSheet)70

71 defsimNGames(self, GAMES, WINS):72 '''

73 function: 模拟n场比赛74 probwinsList: 存储每支队伍赢得比赛的场数 的列表75 winA, winB: 队伍A和B在一场比赛中获胜的局数76 winsA, winsB: 队伍A和B赢得比赛的场数,总共n场77 '''

78 self.probwinsList =[]79 for i in range(0, self.probNum, 2):80 print("队员:", i+1, 'VS' ,i+2, "比赛中...")81 winsA, winsB =0, 082 for _ inrange(self.n):83 winA, winB = self.simOneGame(self.probAbilityList[i], self.probAbilityList[i+1], GAMES, WINS)84 if winA >winB:85 winsA += 1

86 else:87 winsB += 1

88 self.probwinsList.append(winsA)89 self.probwinsList.append(winsB)90

91 defsimOneGame(self, probA, probB, GAMES, WINS):92 '''

93 function: 模拟一场比赛 》》》 GAMES局 WINS胜94 单打比赛,包括七局,采取七局四胜制95 双打比赛,包括五局,采取五局三胜制96 scoreA, scoreB: 分别为队伍A和B一局比赛的分数97 winA, winB: 分别为队伍A和B一场比赛赢的局数98 return: 返回双方赢的局数99 '''

100 winA, winB =0, 0101 for _ inrange(GAMES):102 scoreA, scoreB =self.simAGame(probA, probB)103 if scoreA >scoreB:104 winA += 1

105 else:106 winB += 1

107 if winA >=WINS or winB >=WINS:108 break

109 returnwinA, winB110

111 defsimAGame(self, probA, probB):112 '''

113 function: 模拟一局比赛114 probA, probB: 分别为队伍A和B的能力值115 return: 返回队伍A和B在本局比赛中获得的分数116 '''

117 scoreA, scoreB =0, 0118 serving = 'A' #发球方

119 servingNum = 2 #每方的发球次数

120 while notself.GameOver(scoreA, scoreB):121 if scoreA >= 10 and scoreB >= 10:122 servingNum = 1

123 for _ inrange(servingNum):124 if random() >probA:125 scoreB += 1

126 else:127 scoreA += 1

128 serving = 'B'

129 for _ inrange(servingNum):130 if random() >probB:131 scoreA += 1

132 else:133 scoreB += 1

134 serving = 'A'

135 returnscoreA, scoreB136

137 defGameOver(self, scoreA, scoreB):138 '''

139 function: 定义赢得一局的条件: 先得11分为胜,10平后,多得2分为胜140 '''

141 if scoreA >= 11 or scoreB >= 11:142 return (abs(scoreA-scoreB)>=2)143 elif (scoreA == 10 and scoreB > 11) or (scoreB == 10 and scoreA > 11):144 return (abs(scoreA-scoreB)>=2)145 else:146 return0147

148 defprint_MENU():149 print("程序简介:模拟乒乓球竞技")150 print("程序功能:\n\t1. 模拟多队员进行单打比赛\n\t2. 模拟多队伍多队员进行双打比赛")151 while 1:152 choose = input("功能选择:NO.")153 if choose in ['1', '2']:154 returneval(choose)155 else:156 print("输入有误, 请重新输入!")157

158 defsimGameMenu():159 choose =print_MENU()160 if choose == 1:161 pingpong =SportCompetitionAnalyze()162 pingpong.PrintInfo()163 pingpong.GetInputs_for_Singal()164 Time =time()165 pingpong.simNGames(7, 4)166 print("模拟用时: {:.1f}s".format(time()-Time))167 pingpong.PrintResult()168 else:169 pingpong =SportCompetitionAnalyze()170 pingpong.PrintInfo()171 pingpong.GetInputs_for_Double()172 Time =time()173 pingpong.simNGames(5, 3)174 print("模拟用时: {:.1f}s".format(time()-Time))175 pingpong.PrintResult()176

177 if __name__ == "__main__":178 simGameMenu()

5. 代码写好了,看一下运行效果怎么样呗 ^v^

Tips:为了使用方便,可以使用python的第三方库pyinstaller进行打包,生成exe文件,可以方便运行。

接下来,我们试一下吧~~~

① 首先要安装pyinstaller库

在cmd中输入下面一句代码,详情就不介绍了。

pip install pyinstaller

② 使用方法: pyinstaller      》具体使用方法《

注: 使用pyinstaller时,路径不能出现中文,否则出现编码出错;最好在上述代码的main函数的最后加上 input() 语句,防止程序一运行完就自动退出。

之后双击运行exe文件即可 ↓↓↓

好了,今天就分享到这里,学习去咯~~~

96>92>

python模拟足球比赛_python初体验 —— 模拟体育竞技相关推荐

  1. python网球比赛模拟_python初体验 —— 模拟体育竞技

    python初体验 -->>> 模拟体育竞技 一.排球训练营 1. 简介: 模拟不同的两个队伍进行排球的模拟比赛. 2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ...

  2. python简单体育竞技模拟_python初体验 —— 模拟体育竞技

    python初体验 -->>> 模拟体育竞技 一.排球训练营 1. 简介: 模拟不同的两个队伍进行排球的模拟比赛. 2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ...

  3. python输入流和输出流_Python 初体验之 输入输出流

    任何一个语言都有他的输入输出,对于文件的操作是非常有用的.在Java中曾经有对象序列化这么一个概念,在 Python中同样可以对对象进行序列化然后存放到文件中去,同时还能从文件中再读取出来,估计也可以 ...

  4. Python学习笔记:pandas初体验

    Python学习笔记:pandas初体验 一.安装pandas模块 1.安装Python3.7 注意:必须勾选pip(python install package). 2.配置环境变量 3.下载 pa ...

  5. python从零学——scrapy初体验

    2019独角兽企业重金招聘Python工程师标准>>> python从零学--scrapy初体验 近日因为一些事情,需要从网上爬取一些东西,故而想通过使用爬虫来顺便学习下强大的pyt ...

  6. 【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)

    [python初学者日记]selenium初体验--"秒杀商品"."清空购物车"技能养成记(一) 用python解决"清空购物车".&quo ...

  7. python模拟足球比赛_2019-05-12 Python之模拟体育竞赛

    from random import * #输出介绍信息 defprintIntro():print("这个程序模拟两个选手A和B的某种竞技比赛")print("程序运行 ...

  8. python简单体育竞技模拟_Python程序设计思维练习---体育竞技分析-阿里云开发者社区...

    体育竞技分析:模拟N场比赛 计算思维:抽象 + 自动化 模拟:抽象比赛过程,自动模拟N场比赛,当N越大时,比赛结果分析越科学. 本次比赛规则:回合制,15分一局,先由一方发球,如胜利,则得1分并继续发 ...

  9. 世界足球2012java_足球比赛(JAVA简单模拟)

    import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...

最新文章

  1. jqgrid 单元格绑定点击事件_自定义事件带参数的触发过程
  2. Logstash安装与测试
  3. 请教设计模式大牛们几点
  4. TypeScript - Interfaces
  5. PCA的本质----特征值分解
  6. 高通骁龙712移动平台正式发布!整体性能提升10%
  7. php 时间戳 24小时制,如何在php中添加24小时的unix时间戳?(How do I add 24 hours to a unix timestamp in php?)...
  8. interactive governor study for android
  9. OCCT命令集1(速查笔记)
  10. 正则表达式验证生日手机号信息
  11. 训练日记2019.11.11 莫队求区间众数
  12. 如何调整android手机正常颜色,安卓手机怎么调颜色反转
  13. Termux 使用常用命令
  14. 用java代码写的段子_网上调侃程序员的段子
  15. 计算机网络历年试题分析(大题待补充)
  16. 陌陌前端面试 - 凉面
  17. USB扫码枪获取数据流的实现方式
  18. “2012中国年度天使投资人”蔡文胜:彻底拥抱新趋势
  19. php 下载文件提示框,解决nginx打开php文件总是显示下载框的问题 | 学步园
  20. matlab中的数据导入和导出

热门文章

  1. friendly发音_欧路词典|英汉-汉英词典 friendly是什么意思_friendly的中文解释和发音_friendly的翻译_friendly怎么读...
  2. OpenHarmony轻量系统 子系统,组件那点事
  3. 扫黑除恶Team第四次团队作业
  4. 戴尔笔记本如何查看HTML代码,如何查看戴尔笔记本电脑的型号
  5. win10查看笔记本电脑电池健康度
  6. 航空管理系统c语言程序设计,2018年北京航空航天大学软件院991数据结构与C语言程序设计之C程序设计考研核心题库...
  7. 台式计算机c盘怎么清理空间,电脑C盘空间空间清理方法
  8. jzoj 1307. Jail
  9. Flash按键响应-键码值表
  10. 2019杭电多校 第七场 Kejin Player 6656(求期望值)