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)

 

posted @ 2020-07-29 18:37  octal_zhihao  阅读(475)  评论(3编辑  收藏  举报