自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 问答 (1)
  • 收藏
  • 关注

原创 python读取txt文件并将结果保存到csv文件中

【代码】python读取txt文件并将结果保存到csv文件中。

2023-05-23 17:59:35 1076

原创 蓝桥杯——历届真题 异或数列-python(思路非原创)

思路参考链接:https://blog.youkuaiyun.com/zy98zy998/article/details/122279183def check(li):#因为无论怎么选择,li中的所有元素都要经历一次异或#两人平局时,两人的最终的数一样,即所有的元素异或的结果为0时,两人平局#计算每个位1的个数 result=0 max1=0 for i in li[1:]: result=result^i max1=max(max1,i) if

2022-03-20 12:37:07 1598 2

原创 蓝桥杯——历届真题左hai子右兄弟-python

思路:dp,树转换为左孩子右兄弟的二叉树后,以i为根的树的最大深度为节点i的孩 子数量+孩子中子树最深的深度。使用li[i]记录结点i的所有子节点,dp公式即为:孩子数+max(子树深度),即 len(li[i])+max(dptest(i1、2、3……))import syssys.setrecursionlimit(100000) #限制递归次数n=int(input())li=[[] for i in range(n+1)] #li[i]是结点i的所有子节点# li[i]=i的子节点

2022-03-19 12:30:08 1446

原创 蓝桥杯——算法提高 成绩排序-python

问题描述  给出n个学生的成绩,将这些学生按成绩排序,  排序规则,优先考虑数学成绩,高的在前;数学相同,英语高的在前;数学英语都相同,语文高的在前;三门都相同,学号小的在前输入格式  第一行一个正整数n,表示学生人数  接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩输出格式  输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号  按排序后的顺序输出样例输入21 2 32 3 4样例输出2 3 4 21 2 3 1思路:重要性数

2022-03-18 12:58:38 605

原创 蓝桥杯——试题 算法提高 身份证排序-python

问题描述  安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。身份证号码为18位的数字组成,出生日期为第7到第14位输入格式  第一行一个整数n,表示有n个身份证号码  余下的n行,每行一个身份证号码。输出格式  按出生日期从大到小排序后的身份证号,每行一条样例输入546627230750327115621585647220709797823480458040107836540447572770003498071

2022-03-16 20:59:55 521

原创 蓝桥杯——算法提高 12-2扑克排序-python

问题描述  扑克牌排序:构造扑克牌数组,对扑克牌进行排序。排序原则如下:数字从小到大是2-10、J、Q、K和A,花色从小到大是方块(diamond)、梅花(club)、红桃(heart)、黑桃(spade)。两张牌比较时先看数字,数字相同时看花色。要求对输入的扑克牌进行从小到大排序。  输入五张牌(表示黑桃2、红桃3、黑桃3、方块A和梅花J): 2 s 3 h 3 s A d J c  输出结果应为:2 s 3 h 3 s J c A d数组长度固定为5。参考思路:https://blog.dotc

2022-03-16 20:35:05 2822

原创 蓝桥杯——历届试题 字串排序-python

蓝桥杯字串排序-python

2022-03-11 15:10:10 2980 2

原创 蓝桥杯——历届试题 回文日期-python

思路:每年都只有一个回文串例如1234年 就是12344321,所以根据前4位年份去构建对应的回文串,判断月份、日份是否在合法范围内即可。ABABBABA型同理只有一个,可以根据前2位构建这种类型的回文串。n=int(input())+1n1=n#用字典存储每个月对应的天数 xx为闰年时2月的天数dict={"01":31,"02":28,"03":31,"04":30,"05":31,"06":30,"07":31,"08":31,"09":30,"10":31,"11":30,"12":.

2022-03-10 12:01:06 7798 3

原创 蓝桥杯——历届试题 子串分值【第十一届】【省赛】-python

法1:暴力递归,分别计算每个子串的值 相加#递归:超时 def find(s): n=0 dic={} for i in range(len(s)): if s[i] in dic.keys(): dic[s[i]]+=1 else: dic[s[i]]=1 for k,v in dic.items(): if v==1: n+=1 return

2022-03-08 13:58:32 1074

原创 蓝桥杯——历届真题 外卖店优先级-python

问题描述  “饱了么”外卖系统中维护着N 家外卖店,编号1 N。每家外卖店都有  一个优先级,初始时(0 时刻) 优先级都为0。  每经过1 个时间单位,如果外卖店没有订单,则优先级会减少1,最低减  到0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加2。  如果某家外卖店某时刻优先级大于5,则会被系统加入优先缓存中;如果  优先级小于等于3,则会被清除出优先缓存。  给定T 时刻以内的M 条订单信息,请你计算T 时刻时有多少外卖店在优  先缓存中。输入格式  第一行包含3 个

2022-03-06 21:40:03 424

原创 蓝桥杯——历届真题 完全二叉树的权值-python

问题描述  给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从  上到下、从左到右的顺序依次是 A1, A2, · · · AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点  权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。  注:根的深度是 1。输入格式  第一行包含一个整数 N。  第二行包含 N 个整数 A1,  A2, · · · AN 。输出格式  输出一个整数代表答案。样例输入71 6 5 4

2022-03-03 15:40:49 662

原创 蓝桥杯——修改数组【第十届】【省赛】【研究生组】-python

历届真题 修改数组【第十届】【省赛】【研究生组】#暴力法(能通过3个)n=int(input())A=list(map(int,input().split()))temp=[]print(A)for i in range(n): while (A[i] in temp): A[i] += 1 print(A[i],end=" ") temp.append(A[i])#方法2(能通过4个) n=int(input()) A=list(map(int,

2022-03-02 14:11:03 6046

原创 蓝桥杯——算法训练 K好数-python

问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式输入包含两个正整数,K和L。输出格式输出一个整数,表示答案对1000000007取模后的值。思想:使用动态规划dp[i][j],dp[i][j]代表以i开头的j位数有多少个K好数,最终计算L位(即j位)K

2022-02-28 14:28:48 555

原创 蓝桥杯——算法训练 最大最小公倍数-python

问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。思路:显然三个数互质的时候最小公倍数最大,即三数乘积。对于最大连着的3个数来说:如果最大的是奇数,例如31、32、33,则一定不存在两个3的倍数,所以n*(n-1)*(n-2)就是最大最小公倍数。如果最大的是偶数,例如30、31、32,则它们的最小公倍数至少要积除以2,所以奇-偶-奇的情况下 最小公倍数最大,奇-偶-奇有两种情况:32、3

2022-02-27 13:30:19 980

原创 蓝桥杯——算法训练 区间k大数查询-python

把区间内的数从大到小排列一下 取出对应位置的数即可。n=int(input()) #序列长度list1=list(map(int,input().split())) #给定的序列m=int(input()) #询问个数a=[]for i in range(m): a.append(list(map(int,input().split()))) #3个3个一组for temp in a: l=temp[0] r=temp[1] K=temp[2] li

2022-02-27 12:27:32 199

原创 蓝桥杯BASIC-21Sine之舞——python

def Sn(n,i): #S1=A1 #S2=(A1+2)*A2+1 #S3=((A1+3)*A2+2)A3+1 if n==1: return "sin(1)"+"+"+str(i) result1 = An(n) result = result1[:len(result1) - 1] for q in range(n): result += ")" return "("+Sn(n-1,i+1)+")"+r

2021-11-20 17:10:45 472

原创 蓝桥杯BASIC-19完美的代价——python

n=int(input())str=list(input())result=0k=0t=0while(k<int(n/2)): if t==2: #出现了2个匹配不到的情况 print("Impossible") exit() temp = 0 for i in range(n-k-1-t,k,-1): if str[i]==str[k]: result+=(n-i-k-1)

2021-11-20 16:35:02 3549

原创 蓝桥杯BASIC-14时间转换——python

n=int(input())a=n%60 #秒b=int((n-a)/60)%60 #分c=int((n-a-b*60)/60/60) #时print(str(c)+':'+str(b)+':'+str(a))

2021-11-06 14:58:00 455

原创 蓝桥杯BASIC-15字符串对比——python

ord(chr)能够让字符chr转换为Ascii码,通过Ascii码计算两个数是否为大小写关系(大小写间Ascii码差为32)str1=input()str2=input()temp1=0temp2=0if len(str1)!=len(str2): print(1)else: for i in range(0,len(str1)): if str1[i]!=str2[i]: temp1=1 if (ord(str

2021-11-06 14:46:53 370

原创 蓝桥杯BASIC-16分解质因数——python

用字典存储从4~b的所有结果a,b=map(int,input().split())dic={}for i in range(4,a+1): for j in range(2,int(i/2)+1): if i%j==0: p=int(i/j) if dic.get(p): dic[i]=str(j)+"*"+dic.get(p) else:

2021-11-06 14:27:11 129

原创 蓝桥杯BASIC-17矩阵乘法——python

m,n=map(int,input().split()) #m阶矩阵 幂为nif n==0: l = [[0] * m for i in range(m)] for i in range(m): l[i][i]=1 for i in range(m): for j in range(m): print(l[i][j],end=" ") print()else: l1=[] l2=[]

2021-11-04 14:07:53 174

原创 蓝桥杯BASIC-18矩形面积交——python

思想:两个矩形只有两种情况,一:相交;二:不相交。不相交时,某个矩形的两个横(纵)坐标同时大于或者同时小于另一个矩形的连个横(纵)坐标,直接print(“0.00”)即可相交时,4个横坐标从小到大排序,中间的两个即是相交的部分所对应的两个对角的横坐标,纵坐标也是同理为中间的两个。任意一个-另一个 取绝对值即可获得对应的边长。l1=list(map(float,input().split()))l2=list(map(float,input().split()))if (l1[0]>l2[0

2021-11-04 13:21:30 302 1

原创 蓝桥杯BASIC-20数的读法——python

思路:4位4位分开判断,经过无数次修改判断条件最终通过。现在我已经不知道我写的什么了,只知道写的是对的…n=int(input()) dic={0:"ling",1:"yi",2:"er",3:"san",4:"si",5:"wu",6:"liu",7:"qi",8:"ba",9:"jiu",10:"shi"} i=0 #位数 n1=n l1=[] temp=0 while n1!=0: i+=1 n1/=10 a=

2021-11-03 13:14:04 272

原创 蓝桥杯BASIC-22FJ的字符串——python

思路:观察发现每一次循环只需要增加一个对应B/C/D/E……后面的和前面的一样,所以可以分两步,先在原有基础上增加一个对应的字母B/C/D/E……,然后把前面的复制一下加到后面 即可。 N=int(input()) l1=['A'] for i in range(1,N): l2=[] l2.extend(l1) l1.append(chr(65+i)) l1.extend(l2) for i in range(

2021-11-02 21:22:57 235

原创 蓝桥杯BASIC-23芯片测试——python

思路:因为已知好芯片比坏芯片多,所以每一列如果1多,说明对应的芯片是好芯片,如果0多,说明对应的芯片是坏芯片。n=int(input()) l=[] for i in range(n): l.append(input().split()) a=0 b=0 for i in range(n): #lie for j in range(n): #hang if int(l[j][i])==0:

2021-11-02 20:58:04 371

原创 蓝桥杯BASIC-24龟兔赛跑预测——python

#注意:这道题是整数输入整数输出#兔子速度、乌龟速度、领先t米休息s秒、赛道长度v1,v2,t,s,l=map(int,input().split())x1=0 #兔子已经跑的距离x2=0 #乌龟已经跑的距离time=0 #经过的时间while x1<l and x2<l: x1+=v1 x2+=v2 time+=1 if(x1-x2>=t) and x1<l and x2<l: for i in ran

2021-11-02 11:46:21 324

原创 蓝桥杯BASIC-25回形取数——python

m,n=map(int,input().split()) l1=[] tmp1=0 #标记方向 tmp2=0 #标记圈数 tmp3=0 #防止重复输出拐角 if m<n: num=m*2 else: num=n*2-1 for i in range(m): l1.append(input().split()) for i in range(0,num): #带初始一共拐多少次

2021-11-02 11:02:10 118

原创 蓝桥杯BASIC-26报时助手——python

先判断小时再判断分钟 h,m=map(int,input().split()) dic={0:"zero", 1: "one", 2:"two", 3:"three", 4:"four", 5:"five", 6:"six", 7:"seven", 8:"eight", 9:"nine", 10:"ten", 11:"eleven", 12:"twelve", 13:"thirteen", 14:"fourteen", 15:"fifteen", 16:"sixteen", 17:"seve

2021-11-02 09:58:45 151

原创 第十二届蓝桥杯砝码称重问题——python

方法一(O(n²)):从第一个开始计算,用l2辅助存储当前前i个砝码可以称的重量(q、q+i、abs(q-i)),每次加一个砝码带入计算更新l2、l3。(此方法会超时) n=int(input()) l1=list(map(int,input().split())) l2=[] l2.append(l1[0]) l3=[] for i in l1[1:]: for q in l2: if i not in l3:

2021-11-01 16:37:27 2288 2

原创 蓝桥杯练习题——Huffuman树Python

Huffuman树Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。  给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:  1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。  2. 重复步骤1,直到{pi}中只剩下一个数。  在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用。  本题任务:

2021-11-01 12:08:11 261

原创 C语言宏定义易错题

#include <stdio.h>#define MAX(x,y) (x)>(y)?(x):(y)void main(){ int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf("%d",t);}输出结果为7.原因: 宏定义并非函数,只是单纯地语言替换即 t = (a+b)>(c+d)?(a+b):(c+d)10因此前者大则输出前者,后者大则输出后者10...

2020-10-09 08:41:44 859 1

原创 数据结构——归并排序

王道书上的归并排序算法,有疑问的欢迎评论区交流!//归并排序#include<stdio.h>#include<stdlib.h>void Merge(int A[],int low,int mid,int high){ int i,j,k; int B[high]; for(int k=low;k<=high;k++){ B[k]==A[k]; //A中所有元素复制到辅助数组B中 } for(i=low,j=mid+1,k=i;i<=mid

2020-07-22 11:10:45 226

原创 数据结构——选择排序之简单选择排序、堆排序

//选择排序(简单选择排序、堆排序) #include<stdio.h>#include<stdlib.h> void swap(int &a,int &b){ int temp=a; a=b; b=temp;}void SelectSort(int A[],int n){//简单选择排序 for(int i=0;i<n-1;i++){//共i-1趟 int min=i; for(int j=i+1;j<n;j++){

2020-07-22 10:46:40 167

原创 数据结构——交换排序之冒泡排序、快速排序

//交换排序#include<stdio.h>#include<stdlib.h>void BubbleSort(int A[],int n){//冒泡排序 int i,temp,flag; for(i=0;i<n-1;i++){ //共n-1趟(一趟确定一位) flag=0; for(int j=n-1;j>i;j--){ if(A[j]<A[j-1]){ temp=A[j]; A[j]=A[j-1]; A[j-1

2020-07-22 00:11:57 140

原创 数据结构——插入排序(直接插入、折半插入、希尔排序)

#include<stdio.h>#include<stdlib.h>void InsertSort1(int A[],int n){//直接插入排序 /*注:A是函数参数,到了本函数中,A只是一个指针 (地址,系统在本函数运行时,是不知道a所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址) 所以,sizoef(A)的结果是指针变量A占内存的大小,并非 A的长度 */ if(n==1){ printf("排序结果为%d",A[0]);

2020-07-19 13:08:05 287

原创 数据结构——二分查找

顺序表的相关操作参见https://blog.youkuaiyun.com/qq_40280704/article/details/105916485//二分查找#include <stdio.h>#include <stdlib.h>#define MaxSize 50 typedef struct{ int *elem; int MaxSize,TableLen; }SeqList; int Binary_Search(SeqList L,int key){ int

2020-07-16 12:39:14 92

原创 数据结构——线性表的顺序查找

//顺序查找#include <stdio.h>#include <stdlib.h>typedef struct{ //查找表的数据结构 int *elem; //元素存储空间基址,建表时按实际长度分配,0号单元留空 int length; //表长 }SSTable;int i;int search(SSTable ST,int key){ ST.elem[0]=key; //哨兵(表中无key时,return i=0) for(i=ST.lengt

2020-07-16 12:21:45 576

原创 数据结构——二叉排序树的创建、插入、查找(循环和递归)

#include <stdio.h>#include <stdlib.h>typedef struct BSTNode{ int data; struct BSTNode *lchild,*rchild;}BSTNode,*BiTree; BSTNode *BST_Search1(BiTree T,int key){ //查找值为key的结点(while循环) while(T!=NULL&&key!=T->data){ if(key<

2020-07-10 11:51:38 936 1

原创 数据结构——线索二叉树的线索化(中序、先序、后序)

//线索二叉树#include<stdio.h>#include<stdlib.h>typedef struct ThreadNode{int data;struct ThreadNode *lchild,*rchild;int ltag,rtag; //tag=0时,指向左子树或又子树,tag为1时,指向中序遍历序列的前驱或后继}ThreadNode,*ThreadTree;ThreadNode *pre=NULL; //定义全局变量pre,指向当前访问结点的

2020-07-07 17:56:38 699

原创 数据结构——二叉树的创建、遍历(先序、中序、后序、层次),以及求已知结点p的前驱、后继结点

//二叉树的创建、遍历以及求结点p的前驱、后继结点#include <stdio.h>#include <stdlib.h>typedef struct BiTNode{int data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTree CreateBTree(BiTree T, bool isRoot){//创建一个二叉树 -1代表空节点char ch;if (isRoot)printf(“Root:

2020-07-07 14:19:04 380

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除