自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 蓝桥杯:关于最短路的算法

1.Dijkstra算法例题:蓝桥王国题目描述小明是蓝桥王国的王子,今天是他登基之日。在即将成为国王之前,老国王给他出了道题,他想要考验小明是否有能力管理国家。题目的内容如下:蓝桥王国一共有N个建筑和M条单向道路,每条道路都连接着两个建筑,每个建筑都有自己编号,分别为 1∼N。(其中皇宫的编号为1)国王想让小明回答从皇宫到每个建筑的最短路径是多少,但紧张的小明此时已经无法思考,请你编写程序帮助小明回答国王的考核。输入描述输入第一行包含三个正整数N,M。第...

2022-03-31 23:56:30 1091

原创 蓝桥杯:与DP的应用

1

2022-03-31 21:09:57 654

原创 蓝桥杯倒计时:刷题3.31

目录1.打包(算法提高)二分2.约数个数(算法提高)3.寻找三位数(算法提高)4.第二点五个不高兴的小明5.螺旋矩阵(模拟题)5.汉诺塔1.打包(算法提高)二分def check(k): t=1 summ=a[0] for i in range(1,n): if summ+a[i]<=k: summ+=a[i] else: ...

2022-03-31 20:41:16 292

原创 蓝桥杯:刷题3.30

1.七星填数 658from itertools import *a=[1,2,3,4,5,7,8,9,10,12,13]for x in permutations(a,11): x=list(x) if x[0]+x[1]+x[2]+x[3]==x[1]+x[4]+14+6==x[0]+x[4]+x[5]+x[6]==x[5]+x[7]+x[8]+14==x[6]+x[7]+x[9]+11==x[2]+x[10]+6+11==x[3]+x[10]+x[9]+x[8]...

2022-03-31 00:38:25 377

原创 树状数组+求逆序对

右图圆圈中标记有数字的结点,存储的是称为树状数组的tree[]tree[]。一个结点上的tree[]tree[]的值,就是它树下的直连的子结点的和。例如:tree[1]=a1​ tree[2]=tree[1]+a2​ tree[3]=a3​ tree[4]=tree[2]+tree[3]+a4​ ⋯ tree[8]=tree[4]+tree[6]+tree[7]+a8​而我们利用tree[],有效地完成下面两个操作: 查询,即求前缀和sum,例如: sum(8)=tre...

2022-03-28 23:35:23 2131 1

原创 线性DP相关例题

1.最长公共子序列题目描述给定一个长度为N数组a和一个长度为M的数组b。请你求出它们的最长公共子序列长度为多少。最长公共子序列(Longest Common Subsequence,LCS):一个给定序列的子序列,是在该序列中删去若干元素后得到的序列。例如:X = {A, B, C, B, D, A, B},它的子序列有{A, B, C, B, A}、{A, B, D}、{B, C, D, B}等。子序列和子串是不同的概念,子串的元素在原序列中是连续的。给定两个序列...

2022-03-28 15:42:05 601

原创 贪心与分治

1.翻硬币题目描述小明正在玩一个"翻硬币"的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo;如果同时翻转左边的两个硬币,则变为:oooo***oooo。现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入描述两行等长的字符串,分别表示初始状态和要达到的目标.

2022-03-28 00:12:46 3495

原创 刷题3.27

1.合法日期 541n=int(input())m=int(input())if n==2: if m>28: print('no') else: print('yes')if n==1 or n==3 or n==5 or n==7 or n==8 or n==10 or n==12: if m>31: print('no') else: print('yes')if n==4 or n==6 or n==9 or n==11:..

2022-03-27 20:16:15 595

原创 最少硬币问题

1.最少硬币问题(完全背包)题目描述:有n种硬币,面值分别为V_nV1​,V2​,⋯,Vn​,数量无限。输入非负整数S,请你选用硬币,使其和为S。要求输出最少的硬币组合。1) 只使用最小面值的 1 分硬币初始值cnt[0]=0cnt[0]=0,其他的cnt[i]cnt[i]为无穷大。下面计算cnt[1]cnt[1]。只用1分硬币i=0,cnt[0]=0,表示金额为0,硬币数量为0。在这个基础上,加一个1分硬币,就前进到金额i=1,硬币数量cnt[...

2022-03-27 10:46:19 2138

原创 刷题3.25

1.找素数 730from math import *def isprime(x): if x==1: return False for i in range(2,int(sqrt(x))+1): if x%i==0: return False return Trueans=0for i in range(2,10000000): if isprime(i): ans+=1 if ans==100002: prin..

2022-03-26 19:40:00 167

原创 快速幂和矩阵快速幂

1.快速幂模板题目描述输入 b,p,k的值,求b^p \mod k的值。其中b,p,k为int64数。输入描述三个整数b,p,k。输入描述输出b^p \mod k=s,s为运算结果。样例输入2 10 样例输出7def fastPow(a,n,mod): ret = 1 while n: if(n&1): ret = ret*a % mod a = ...

2022-03-26 16:22:27 109

原创 GCD,LCM(最大公因数,最小公倍数)

1.等差数列 (2019年省赛)题目描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中N个整数。现在给出这N个整数,小明想知道包含这N个整数的最短的等差数列有几项?输入描述输入的第一行包含一个整数N。第二行包含N个整数 A1​,A2​,⋅⋅⋅,AN​。(注意 A1​∼ AN​并不一定是按等差数列中的顺序给出)其中,2≤N≤10^5,0≤Ai​≤10^9。输出描述输出一个整数表示答案。输入输出样例...

2022-03-26 09:40:28 451

原创 与并查集相关的例题(蓝桥幼儿园、合根植物、修改数组)

1.蓝桥幼儿园题目描述蓝桥幼儿园的学生是如此的天真无邪,以至于对他们来说,朋友的朋友就是自己的朋友。小明是蓝桥幼儿园的老师,这天他决定为学生们举办一个交友活动,活动规则如下:小明会用红绳连接两名学生,被连中的两个学生将成为朋友。小明想让所有学生都互相成为朋友,但是蓝桥幼儿园的学生实在太多了,他无法用肉眼判断某两个学生是否为朋友。于是他起来了作为编程大师的你,请你帮忙写程序判断某两个学生是否为朋友(默认自己和自己也是朋友)。输入描述第1行包含两个正整数N,M,其中N表示蓝...

2022-03-25 20:30:47 125

原创 刷题3.24

1.金币 357def f(x): ans=0 for i in range(1,x+1): ans+=i*i return ansn=int(input())for x in range(1,n+1): if int(x*(x+1)//2)==n: print(int(f(x))) break if x*(x+1)/2>n: m=(x-1)*x/2...

2022-03-24 18:39:52 82

原创 刷题3.22

1.算式900 649from itertools import *s=['0','1','2','3','4','5','6','7','8','9']for p in permutations(s,10): if p[0]!=0 and p[4]!=0 and p[8]!=0: s=''.join(p) a=int(s[0:4]) b=int(s[4:8]) c=int(s[8:10])...

2022-03-23 12:57:11 61

原创 与剪枝相关的问题

1.分考场(2017年国赛)题目描述n个人参加某项特殊考试。为了公平,要求任何两个认识的人不能分在同一个考场。求是少需要分几个考场才能满足条件。输入描述第一行,一个整数n(1≤n≤100),表示参加考试的人数。第二行,一个整数m,表示接下来有m行数据。以下m行每行的格式为:两个整数a,b,用空格分开 ( 1≤a,b≤n)表示第a个人与第b个人认识。输出描述输出一行一个整数,表示最少分几个考场。样例输入581 21 31 ...

2022-03-22 19:53:46 76

原创 连通块问题(用dfs的方法解决)

1.剪格子(2013年省赛)题目描述如下图所示,3 x 3 的格子中填写了一些整数。我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是 60。本题的要求就是请你编程判定:对给定的m×n的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。如果无法分割,则输出 0。输入描述输入描述程序先读入两个整数m,n用空格分割(m,n<10),表示表格的宽度和高度。接下..

2022-03-21 21:14:09 440

原创 与素数相关的例题

1.孪生素数题目描述编写程序求孪生素数(如果n和 n+2都是素数,则称它们是孪生素数)。输入描述输入一 个正整数 m(1≤m≤100)。输出描述输出两个均不超过mm的最大孪生素数(中间空一格)。输入输出样例示例输入20输出17 19from math import *def isprime(n): if n==1: return 0 m=int(sqrt(n)+1) for i in range(2,...

2022-03-20 19:24:14 5366

原创 刷题3.20(还有19天啦)

1.一步之遥(简单模拟)题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。一步之遥从昏迷中醒来,小明发现自己被关在 X 星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着“F”和“B”。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按F,会前进 97米。按B会后退127米。 透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助...

2022-03-20 19:05:27 101

原创 刷题3.19

1.题目 1514: 蓝桥杯算法提高VIP-夺宝奇兵https://www.dotcpp.com/oj/problem1514.htmlhttps://www.dotcpp.com/oj/problem1514.html注意事项:走的路线从下到上只能走上面的或左上面。

2022-03-20 00:04:27 460

原创 刷题3.17+3.18

1.扫地机器人199用二分法求最小值前面的分巧克力和跳石头是用二分法求最大值最前面都是while l<r:1.求最小值如果mid符合条件,r=mid不符合条件,l=mid+1最后输出的是l2.求最大值如果mid符合条件,l=mid+1不符合条件,r=mid最后输出的是l-1每个机器人清扫完都得回到自己原来的位置,所以花费的时间是(清扫范围-1)*2因为所有机器人是同时进行的,所以用二分法找到一个机器人的运动范围,然后check它能不能走完所有的路程。

2022-03-19 10:59:07 348

原创 与DFS相关的蓝桥杯省题

1.迷宫题目描述X 星球的一处迷宫游乐场建在某个小山坡上。它是由 10×10相互连通的小房间组成的。房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:L表示走到左边的房间, R表示走到右边的房间, U表示走到上坡方向的房间, D表示走到下坡方向的房间。X 星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。这个游戏也是如此!开始的时候,直升机把 100名玩家放入一个个小房间内。玩家一定要按照地上的字母移动。迷宫地图如下:UDDLU...

2022-03-17 21:38:07 3218

原创 双向排序 2020年省赛 python

暴力解法:能得60分n,m=map(int,input().split())num=[i for i in range(1,n+1)]for i in range(m): a,b=map(int,input().split()) if a==0: new=sorted(num[:b],reverse=True) num=new+num[b:] if a==1: new=sorted(num[(b-1):]..

2022-03-16 21:00:54 320

原创 刷题 3.16

1.最大乘积 6291.for i in permutations(range(1,10),9):这个的输出是(1,2,3,4,5,6,7,8,9)···············这个转化不成字符串的形式只有列表s中各个元素都是字符串,i才能转化成字符串from itertools import *d=[]s=['1','2','3','4','5','6','7','8','9']for i in permutations(s,9): s=''.join(i) for i

2022-03-16 17:10:35 74

原创 关于bfs的刷题

1.Acwing 武士风度的牛 188(跟迷宫类似)1.先建图2.找出起点和终点3.开始dfs()4.用优先队列,把起点装入队列a.弹出队列中的第一个,走下一步bfs,先判断是不是终点b.判断出界,continue;判断标记;continue;判断障碍;continuec.步数+1d.打入队列,打标记import sysfrom queue import *n,m=map(int,input().split())b=[]for i in range(m): .

2022-03-16 13:11:38 382

原创 刷题3.15

1.神奇算式 700sum=0for i in range(99): for j in range(i+1,999): s=list(str(i)+str(j)) s.sort() t=list(str(i*j)) t.sort()#判断是否不重复,判断是否是四位数 if s==t and 1000<i*j<9999 and len(set(s))==len(set(t))==4 : sum+=1print(sum)...

2022-03-15 23:21:59 61

原创 排序问题3.14

1.最小字符串问题描述  给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。输入格式  第一行T,表示有T组数据。  接下来T组数据  每组第一行一个正整数n,表示字符串个数。  接下来n行,每行一个字符串(长度不超过100)。输出格式  T行,每行一个字符串。样例输入13abc样例输出abc数据规模和约定  T<=7000,n<=100;用到了functools中的cmp_to_key(c..

2022-03-14 23:43:40 510

原创 刷题3.13

1.巧排扑克牌 735手算2.质数拆分 809 (01背包)res = []for i in range(2,2019): if isprime(i): res.append(i)dp = [0 for i in range(2020)]dp[0] = 1for i in range(len(res)): for j in range(2019, res[i]-1, -1): dp[j]+=dp[j-res[i]]print(dp...

2022-03-14 00:19:56 278

原创 刷题3.12

1.猴子分香蕉 618 手算2.等差数列 192from math import *n=int(input())lu=list(map(int,input().split()))lu=sorted(lu)s=[]for i in range(1,len(lu)):#求两个数之间的差 a=lu[i]-lu[i-1] s.append(a)ans=gcd(s[1],s[0])for i in range(2,len(s)): ans=gcd(ans,s[i])if...

2022-03-12 21:24:35 53

原创 小明的游戏(博弈论)

1.小明的游戏1(尼姆博弈)题目描述蓝桥公司给他们的员工准备了丰厚的奖金,公司主管小明并不希望发太多的奖金,他想把奖金留给智慧的人,于是他决定跟每一个员工玩一个游戏,规则如下:桌面上一共有n 堆一元钱。 双方轮流行动,由小明先行动,每次行动从某一堆钱中拿走若干元(至少一元钱),取走最后一元钱的人获胜。请问员工们能拿到奖金吗?输入描述第一行为一个整数T,表示测试数据数量。每个测试用例包含俩行。第一行为一个整数n , 第二行包括n 个整数 a1​,a2​...an​表...

2022-03-12 16:05:09 5744

原创 刷题3.11+3.12

1.年龄巧合 694def check(x): x=str(x) a=int(x[0])+int(x[1])+int(x[2])+int(x[3]) if a==2014-int(x): return True else: return Falsey=[]for i in range(2014,1980,-1): if check(i): print(i)2.第几个幸运数字 6131.暴力count=0for i in rang...

2022-03-12 14:50:11 77

原创 二分法(分巧克力、跳石头、一元三次方程求解)

1.分巧克力(超时)题目描述儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi​×Wi的方格组成的长方形。为了公平起见,小明需要从这N块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足: 形状是正方形,边长是整数; 大小相同; 例如一块 6×5​ 的巧克力可以切出 6 块2×2​ 的巧克力或者 2 块 3×3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算...

2022-03-11 16:23:55 233

原创 尺取法(日志统计和锻造兵器)

1.日志统计题目描述小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:tsid表示在ts时刻编号id的帖子收到一个"赞"。现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。具体来说,如果存在某个时刻 T 满足该帖在[T,T+D)这段时间内(注意是左闭右开区间)收到不少于K个赞,该帖就曾是"热帖"。给定日志,请你帮助小明统计出所有曾是"热帖"...

2022-03-11 15:23:30 1848

原创 背包问题(01背包、完全背包、多重背包、混合背包、分组背包)

题目描述小明有一个容量为V 的背包。这天他去商场购物,商场一共有N件物品,第i件物品的体积为 wi​,价值为 vi​。小明想知道在购买的物品总体积不超过 V的情况下所能获得的最大价值为多少,请你帮他算算。输入描述输入第1行包含两个正整数N,V表示商场物品的数量和小明的背包容量。第2∼N+1行包含2个正整数w,v表示物品的体积和价值。1≤N≤10^2, 1≤V≤10^3,1≤wi​,vi​≤10^3。输出描述输出一行整数表示小明所能获得的最大价值。...

2022-03-11 01:34:41 1192

原创 蓝桥杯省赛 2020 装饰珠

题目描述在怪物猎人这一款游戏中,玩家可以通过给装备镶嵌不同的装饰珠来获取 相应的技能,以提升自己的战斗能力。已知猎人身上一共有 6 件装备,每件装备可能有若干个装饰孔,每个装饰孔有各自的等级,可以镶嵌一颗小于等于自身等级的装饰珠 (也可以选择不镶嵌)。装饰珠有M种,编号 1 至M,分别对应M种技能,第i种装饰珠的等级为Li​,只能镶嵌在等级大于等于 hi​的装饰孔中。对第ii种技能来说,当装备相应技能的装饰珠数量达到Ki​个时,会产生Wi​(Ki​)的价值。镶嵌同类技...

2022-03-10 19:10:07 2848

原创 蓝桥杯灌溉 python 551

题目描述小蓝负责花园的灌溉工作。花园可以看成一个n行m列的方格图形。中间有一部分位置上安装有出水管。小蓝可以控制一个按钮同时打开所有的出水管,打开时,有出水管的位置可以被认为已经灌溉好。每经过一分钟,水就会向四面扩展一个方格,被扩展到的方格可以被认为已经灌溉好。即如果前一分钟某一个方格被灌溉好,则下一分钟它上下左右的四个方格也被灌溉好。给定花园水管的位置,请问k分钟后,有多少个方格被灌溉好?输入描述输入的第一行包含两个整数n, m。第二行包含一个整数t,表示出...

2022-03-10 16:14:00 175

原创 刷题 3.10

1.约瑟夫环 蓝桥231题目描述n个人的编号是 1 ~n,如果他们依编号按顺时针排成一个圆圈,从编号是 1 的人开始顺时针报数。(报数是从 1 报起)当报到k的时候,这个人就退出游戏圈。下一个人重新从 1 开始报数。求最后剩下的人的编号。这就是著名的约瑟夫环问题。本题目就是已知n,k的情况下,求最后剩下的人的编号。输入描述输入是一行,2 个空格分开的整数 (0<n,k<10^7)。输出描述要求输出一个整数,表示最后剩下的人的编号。第一种方...

2022-03-10 14:27:43 4792

原创 蓝桥杯省赛 2020 平面切分

题目描述平面上有N条直线,其中第ii条直线是y=Ai​×x+Bi​。请计算这些直线将平面分成了几个部分。输入描述第一行包含一个整数N。以下N行,每行包含两个整数 Ai​,Bi​。其中,1≤N≤1000,−10^5≤Ai​,Bi​≤10^5。输出描述一个整数代表答案。总结:1.那么一条直线对答案的贡献=1+​ 它与别的直线的交点个数 。from math import *n = int(input())line = set()ans = ...

2022-03-10 00:12:26 154

原创 蓝桥杯省赛2020 数字三角形

题目描述上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。输入描述输入的第一行包含一个整数 (1≤N≤100),表示三角形的行数。下面的N行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。输出描述输出一个整数,表示答案。输入输出...

2022-03-09 22:42:32 116

原创 蓝桥杯2020年省赛 单词分析

题目描述小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。输入描述输入一行包含一个单词,单词只由小写英文字母组成。对于所有的评测用例,输入的单词长度不超过 1000。输出描述输出两行,第一行包含一个英文字母,表示单词中出现得最多的字.

2022-03-09 21:51:36 72

空空如也

空空如也

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

TA关注的人

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