- 博客(90)
- 问答 (1)
- 收藏
- 关注
原创 蓝桥杯 错误票据(python)
思路:好好看题目,要列出要求和大致流程图。错误票据的条件:ID断号和ID重复,所以我们就要找出里面断号和重复的。既然如此,我们就先输入数据,将它从小到大排序,然后找出断号和重复即可import timestart = time.time()a = []n = int(input())for i in range(n): b = input().split() for i in b: a.append(int(i))a.sort()for i in...
2022-03-15 17:11:41 7770
原创 蓝桥杯 核桃的数量(python)
思路:这题想法来源于题目描述1和2,我们要求组内核桃能平分,数量还相同。那么我们可以想到这个跟我们求最大公约数一致。a,b,c = map(int,input().split()) #输入for i in range(1,1+a*b*c): #在1-三个数的最大公倍数里找 if i%a == 0 and i%b == 0 and i%c == 0: print(i) break...
2022-03-15 17:01:27 6446
原创 dp 完全背包问题python
我们今天来学习完全背包问题,完全背包问题是基于0-1背包的基础,如果不明白或者忘记了可以点击下面的链接。https://blog.csdn.net/qq_53500156/article/details/123454958?spm=1001.2014.3001.5501为什么呢,0-1背包问题,它是按照前一行来进行计算,而完全背包问题就可以在该行进行判断与计算。好好理解c = 10 #背包容量w = [3,4,5,7] #物体体积v = [1,5,6,9.
2022-03-13 11:31:30 1792
原创 dp 0-1背包问题 python
这个是新学的动态规划问题中,经典的0-1背包问题。最主要的问题是清楚状态转移方程的使用方法,以及在索引时初始化的问题。c = 10 #背包容量w = [3,4,5,7] #物体体积v = [1,5,6,9] #物体的价值n = len(w)dp = [[0 for i in range(c+1)]for j in range(1+n)] #创建一个n*c的零矩阵w.insert(0,0) #因为dp表上次和左侧各有一列0,为了索引对齐v
2022-03-13 10:08:36 1081
原创 蓝桥杯 哈夫曼树(python)
样例输入55 3 8 2 9样例输出59思路:根据题目要求,我们首先要知道输入的格式,确定之后,按照题目的要求我们可知,是要根据哈夫曼树的构造方法,即寻找两个最小的叶子节点然后组成一个节点,最终形成哈夫曼树的过程。但是题目要求的是输出所有组成节点的值。所以我们就必须要有一个计数的东西,在按照要求,同下方代码一样,一步一步进行即可。n = int(input())#输入整数nmylist = list(map(int,input().split()))#输入哈夫曼数...
2022-03-12 16:45:29 1229
原创 快速排序(python)
def quick_sort(my_list,start,end): if start < end: i,j = start,end base = my_list[i] #设立基础值 while i<j: while (i<j) and (my_list[j]>=base): #右往左移 j-=1 my_li...
2022-03-12 09:58:34 114
原创 蓝桥杯 入门练习(python)
1.平年闰年。def isleap(n): if (n % 400 == 0 and n%100 != 0) or n % 400 == 0 : return 'yes' else: return 'no'n = int(input())print(isleap(n))
2022-03-09 22:32:59 430
原创 蓝桥杯 Fabonacci数列(python)
这个题我做了很久,尝试了很多方法,发现只能用这个方法才能得到100分。如果不明白可以转到我之前写的文章请先看看,关于fabonacci的方法。链接在下方。https://blog.csdn.net/qq_53500156/article/details/123092227?spm=1001.2014.3001.5502自己刷题得到的经验,如果有更好的方法请指教。n = int(input())a=b=c= 1if n == 1 or n == 2: print(1)...
2022-03-08 18:12:48 183
原创 BFS计算最短路径(python)
我们这里所说的最短路径是从根节点到某一指定叶子节点的最短路径。如上图,我们把E,当成根节点,我们到B的最短路径就是ECB。我们用代码来实现。我们用到的思路就是使用一个字典来存放节点的父节点,仔细看parent和ver 的关系,ver是取到的队头元素,我们用for循环在grep[ver]中找到子元素,所以我们可以反过来用parent[i] = ver 来存放子对父的key_value。grap = { "A": ["B", "C"], "B": ["A", "C", "D".
2022-03-06 20:18:58 3838
原创 DFS算法(python)
深度优先搜索算法 (英语: Depth-First-Search , DFS )是一种用于遍历或搜索 树 或 图 的 算法 。. 这个算法会尽可能深的搜索树的分支。. 当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这个也是我们在数据结构中学过的,我在这也不赘述。不明白原理的可以查一下DFS算法。我们俗称的不撞南墙不回头。如上图,我们选择A做第一个,我们得到的是ACEDFB。其实这里的代码跟BFS用到的代码一样,只需要修改一下即可。接下来我们用代码实现。grap
2022-03-06 19:46:01 12389 6
原创 BFS算法 (python)
广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略。因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较广的区域,故得名。也就是我们在数据结构中学习过的BFS算法。按层数的遍历。同上图所示,我们从A开始得到它的一个BFS就是ABCDEF。我们使用代码实现该程序。grap = { "A":["B","C"], "B":["A","C","D"], "C":["A","B","D","E"], "D":["B","C".
2022-03-06 19:24:04 8129
原创 把这些值加起来(python)递归
题目:编写一个程序,从用户哪里读取值,直到输入空行位置为止,显示用户输入的所有置得总和,使用递归完成此任务。程序可能不使用任何循环。def sum_to(): n = input() if n == '': return 0 else: return float(n) + sum_to()def main(): total = sum_to() print(total)main() 思路:首先我们要进行读
2022-03-04 16:09:28 443 2
原创 冒泡排序(python)
def bubble_sort(mylist): n = len(mylist)-1 for i in range(n): for j in range(n-i): if mylist[j] > mylist[j+1] : mylist[j] ,mylist[j+1]=mylist[j+1],mylist[j] return mylista = [2,4,58,1,5,6,3,4,89,45,26,.
2022-03-03 20:13:32 252 1
原创 二分查找法(python)
def binary_search(mylist,item): ''' 二分查找法 在100中猜中一个数 ''' low = 0 hight = len(mylist)-1 while hight >= low : mid = (low + hight)//2 guess = mylist[mid] if guess == item: .
2022-03-03 19:33:34 308 3
原创 选择排序(python)
思路:首先将第一个数做一部分,后面作为一部分,即上图中的8,两个指针都指向8,往后比较,若比8小,指针移动到该数,继续比较,找到最小的数2,与8互换位置。同理,分割第一第二个数作为第一部分,按照上面的方法继续。def selectionSort(n): countIdx = 0 #设定一个指针 while countIdx < len(n)-1: #遍历到最后一个即可 mi..
2022-02-27 11:14:50 511
原创 辗转相除法(python)
在求解俩个数的最大公约数时我们有两个办法:1.分解质因数 2.辗转相除法在数字较大时使用分解质因数计算速度比较慢def gcd(m,n): if n == 0: #若n 能等于零说明已经除尽 n 就是它的最大公约数 return n else: return gcd(n,m%n) #将n 变成m 将m/n作n 继续除,符合辗转相除法的步骤m,n = map(int,input().split())g.
2022-02-27 10:16:55 2842
原创 斐波那契数列(python)
def fib(n): """计算第n项的值""" if n <= 2: return n -1 return fib(n-1) + fib(n-2)print(fib(10)) #第10项斐波那契数列print("-"*30)sum =0for i in range(1,10): #前10项斐波那契数列之和 sum += fib(...
2022-02-23 15:59:31 5606
原创 递归函数(python)
def f(x): if x % 2 == 1: #判断是否为奇数 return 2*f(x+1) elif x % 2 == 0 and x >= 2: #判断是否为偶数并且大于等于2 return 2*f(x-3) - 9 elif x == 0: #判断是否为0 return 3x = in...
2022-02-23 15:21:34 379
原创 素数对(python)
思路:我们看到题目要求是寻找素数对,首先我们要判断素数,我们可以建立一个函数判断是否为素数。其次我们在观察输入,很简单,在观察输出,需要两个数之间空格我们print(x,y)即可def isprime(n): #判断是否为素数 for i in range(2,n): if n % i == 0: return False return Truen = int(input())flag ..
2022-02-22 17:16:45 1576
原创 pat L-070 吃火锅(python)
思路:首先读题,输入聊天记录。遇到符号'.'结束输入,我们输入的聊天记录后,需要记录聊天信息的条数、出现'chi1 huo3 guo1' 的位置和出现'chi1 huo3 guo1'的条数。a = []b = []c = []while 1: c = input() if c == '.': #遇到符合'.'结束输入 break else: a.append(c) sum = 0print(..
2022-02-20 16:11:47 1013
原创 pat L1-068 调和平均(python)
思路:先思考怎么求倒数,就是我们小学学到的1/N。那我们看到输入样例,所以考虑到了需要循环处理这个事情。但是处理这个数字,我们需要使用eval函数。n = int(input()) #整数nsum = 0a =[eval(i) for i in input().split()] #输入n个数for j in a: sum += 1/jprint("%.2f"%(1/(sum/n)))...
2022-02-19 10:44:18 493
原创 pat L1-067 希洛极限(python)
思路:读懂题目即可;条件就是x < c 时不会被撕裂n=input().split() #输入条件a=float(n[0]) #密度比值b=int(n[1]) #小天体的属性c=float(n[2]) #半径比值#流体if b==0: x=a*2.455 if ...
2022-02-16 15:20:50 439
原创 pat L1-066 猫是液体(python)
a,b,c = map(int,input().split())print(f"{a*b*c}")
2022-02-16 15:01:38 698
原创 pat L1-063 吃鱼还是吃肉(python)
n=int(input()) for i in range(n): a=list(map(int,input().split())) s=a[0] h=a[1] w=a[2] if s==1: if h<130 and w<27: print("duo chi yu! duo chi rou!") elif h<130 and w==27: pr...
2022-02-15 12:55:47 758
原创 pat L1-062 幸运彩票(python)
思路:暴力破解n=int(input()) #输入行数for i in range(n): #遍历输入彩票数 temp=input() m1=temp[0:1] m2=temp[1:2] m3=temp[2:3] #上为1-3,下为4-6 m4=temp[3:4] m5=temp[4:5] m6=temp[5:6] m=int(m1...
2022-02-15 12:43:05 339
原创 pat L1-061 新胖子公式(python)
思路:注意格式n = (input().split()) #输入体重和身高ans = float(n[0])/(float(n[1])*float(n[1])) #体重除以身高的平方print("%.1f"%ans) #注意保留一位小数if ans > 25: print("PANG")else: ...
2022-02-15 12:21:36 512
原创 pat L1-060 心理阴影面积(python)
思路:分割图形,小学知识。x,y = map(int,input().split()) #输入(x,y)s_ju = (100-x)*y #矩形面积two_san = ((x*y)/2) + ((100-x)*(100-y)/2) #两个三角形面积ans = int(10000/2-s_ju-two_san) ...
2022-02-15 12:06:19 1463
原创 pat L1-058 6翻了(python)
s = input() #输入字符串count = 0flag = Falset = ""for i in s: #遍历字符串有6的位置 if i == "6": count += 1 flag = True else: if flag: if count > 9: ...
2022-02-14 12:39:26 1130
原创 pat L1-056 猜数字(python)
思路:首先明白取胜的条件,猜的数与平均数的一半最接近即是获胜者。然后我们考虑如何存储名字和猜的数值。然后我们要用猜的数与平均数的一般进行比较,肯定使用循环。最后找出胜利者,输出(注意输出格式)n = int(input()) #输入游戏参与人数names = []nums = []for i in range(n): #存储参与人员..
2022-02-14 11:50:46 302
原创 pat L1-055 谁是赢家(python)
思路:胜利条件1:票数高且有至少一位评审的投票胜出 胜利条件2:三位评委都投票给他(她)即胜出pa,pb = map(int,input().split()) #输入a,b两人的观众得票数p2_a = 0 #评委计票器p2_b = 0 #同上...
2022-02-14 11:25:34 725
原创 pat L1-054 福到了(python)
思路:利用列表存储 在使用reverse()函数。a= input().split() #输入字符和维度li1 = []for i in range(int(a[1])): li1.append(input()) #将福字每一行的字符存入列表s1 = "".join(li1) #将福字字符拼接到一起方便使用reverses2 = s1 li2 = list(s1)l...
2022-02-14 11:03:03 398
原创 pat L1-053 电子汪(python)
主要是输入输出没难点a,b = map(int,input().split())c = a + bprint(c*"Wang!")
2022-02-14 10:14:26 193
原创 pat L1-051 打折(python)
本题考查输出格式a,b = map(int,input().split())c = a * (0.1*b)print("%.2f"%c)
2022-02-14 10:07:57 243 1
原创 字母图形python
def main(): s=list(map(int,input().split())) a=s[0] f=s[1] zimu=[] for i in range(26): zimu.append(chr(65+i)) li=[] for i in range(a): res=zimu[1:i+1][::-1] #开头 front = zimu[:f-i] ...
2022-02-12 12:32:50 931
原创 数列特征python
def main(): n = int(input()) li =list(map(int,input().split())) li.sort() sum = 0 for i in li: sum = sum + i print(str(li[-1])) print(str(li[0])) print(sum)main()
2022-02-12 12:10:08 358
原创 蓝桥杯 查找整数python
n = int(input()) #输入nli =list(map(int,input().split())) #输入数列print(li.index(int(input()))+1) #寻找输入数字是否在n里
2022-02-12 11:58:15 263
原创 杨辉三角python
n = int(input())li1 = []for i in range(n): li2 = [] if i ==0: li2 = [1] #第一行 elif i == 1: li2 = [1,1] #第二行 else: for j in range(i+1): if j == 0 or j == i.
2022-02-11 12:10:17 182
原创 蓝桥杯 特殊的数字(python)
n = 100 #从100开始for i in range(100,1000): #遍历从100-999次 n1 = n//100 #取百位数 n2 = (n%100)//10 #取十位数 n3 = n%10 #取个位数 n4 = n1**3 + n2**3 +n3**3 #条件 if n4 == n: print(n4) ...
2022-02-11 11:22:13 698
空空如也
批量读取nc文件,并限制经纬度和时间提取需要是降水影响因子。
2022-01-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人