P1036 选数(python)解题报告
用python AC P1036
笔者的第一语言为C++,初学python,代码如有可改进之处,欢迎讨论(不过代码都已经过测评且AC) -----------Check_XY
引言
放暑假了,终于有空余时间自学一下python(虽然物竞、数竞和文化课几乎挤扁了我的空余时间)
就从我以前刷过的C++的题开始吧
以前为OI刷题的时候,并没有养成经常写解题报告的习惯
经过一番考虑,决定记录我的python解题,此随笔为第3弹
原题链接(来自洛谷)
需要解析可前往我的另一篇随笔(用C++写)\----传送门----/
1 import math 2 def judge(a): #判断素数 3 if a<2: 4 return false 5 for i in range(2,int(math.sqrt(a))+1): 6 if a%i == 0: 7 return False 8 return True 9 def dfs(num,i,sum): 10 global ans,a 11 if num == k: 12 if(judge(sum)): 13 ans+=1 14 return 15 for j in range(i,n+1): 16 dfs(num+1,j+1,sum+a[j]) 17 return 18 ans = 0 19 n,k = map(int,input().split()) 20 string = input() 21 a = [0] 22 a += [int(x) for x in string.split()] 23 dfs(0,1,0) 24 print(ans)