杯刷题专题

蓝桥杯刷题-游戏

1388. 游戏 - AcWing题库 #include <bits/stdc++.h>using namespace std;const int N = 110;int n , s[N];int f[N][N][2];int a[N];int sum(int l, int r){return s[r] - s[l - 1];}int main(){cin >> n;for(int

蓝桥杯刷题-包子凑数

1226. 包子凑数 - AcWing题库 #include <bits/stdc++.h>using namespace std;const int N = 110;int n , d = 0;int a[N];bool dp[N][10005];int gcd(int a,int b){return b ? gcd(b , a % b) : a;}int main(){cin >

蓝桥杯刷题-约数的个数

3377. 约数的个数 - AcWing题库 #include <bits/stdc++.h>using namespace std;int n;int Get(int x){int ans = 0;for(int i = 1;i <= x / i; i ++){if(x % i == 0 && i != x / i) ans += 2;if(x % i == 0 && i == x / i

蓝桥杯刷题-毕业旅行问题

731. 毕业旅行问题 - AcWing题库 /* 起点变为1 ~ n - 1号点,终点变为0号点 */#include <bits/stdc++.h>using namespace std;#define x first#define y secondtypedef long long LL;typedef pair<int , int> PII;const int N = 10 ,

蓝桥杯刷题-数星星

1265. 数星星 - AcWing题库 /* 题目中的y是递增,不影响 *//* 直接看作一维数组的更新维护 *//* 将数据二进制化,拿最低位的1 *//* 转化为线段树的解法才是核心 *//* 思想是前缀和 */#include <bits/stdc++.h>using namespace std;const int N = 15010 , M = 32010;int level

蓝桥杯刷题-计算系数

本文自用,用作记录。 211. 计算系数 - AcWing题库 #include <bits/stdc++.h>using namespace std;int a, b, k ,n ,m;const int mod = 10007;int qmi(int a, int k){a %= mod;int res = 1;while (k){if (k & 1) res = res * a

蓝桥杯刷题-乌龟棋

312. 乌龟棋 - AcWing题库 /* 状态表示:f[b1,b2,b3,b4]表示所有第 i种卡片使用了 bi张的走法的最大分值。状态计算:将 f[b1,b2,b3,b4]表示的所有走法按最后一步选择哪张卡片分成四类:第 i类为最后一步选择第 i种卡片。比如 i=2,则这一类的最大分值是 f[b1,b2−1,b3,b4]+score[b1+2b2+3b3+4b4]*/#include

蓝桥杯刷题 二分-[2145]求阶乘(C++)

问题描述 满足 N! 的末尾恰好有 K 个 0 的最小的 N 是多少? 如果这样的 N 不存在输出 −1。 输入格式 一个整数 K。 输出格式 一个整数代表答案。 样例输入 2 样例输出 10 评测用例规模与约定 对于 30% 的数据,1 ≤ K ≤ 10的6次方 对于 100% 的数据,1 ≤ K ≤ 10的18次方 知识点:数学找规律,二分 代码 #inc

蓝桥杯刷题 二分-[99]分巧克力(C++)

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

蓝桥杯刷题--RDay5

清理水域--枚举 8.清理水域 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/2413/learning/?page=1&first_category_id=1&second_category_id=3&tags=2023        小蓝有一个n × m大小的矩形水域,小蓝将这个水域划分为n行m列,行数从1到n标号,列数从1到m标号

蓝桥杯刷题 深度优先搜索-[178]全球变暖(C++)

题目描述 你有一张某海域 N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示: … .##… .##… …##. …####. …###. … 其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。 由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。 具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋

蓝桥杯刷题 深度优先搜索-[2410]最大连通(C++)

问题描述 小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1 。 11001000001111111010100100100110101011101101101110100111111001000000000101000110110000001001011000111110001010110001111000101110100010001111111111101000

蓝桥杯刷题-14-更小的数-区间DP⭐

蓝桥杯2023年第十四届省赛真题-更小的数 //区间DP#include <iostream>#include<bits/stdc++.h>#define int long longusing namespace std;const int N=5e3+10;int f[N][N];void solve(){string s;cin>>s;int ans=0;for(int

蓝桥杯刷题-09-三国游戏-贪心⭐⭐⭐

蓝桥杯2023年第十四届省赛真题-三国游戏 小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X, Y, Z 增加Ai , Bi ,Ci 。 当游戏结束时 (所有事件的发生与否已经确定),如果 X, Y, Z 的其中一个大于另外两个之和

蓝桥杯刷题day14——盖印章【算法赛】

一、问题描述 小 Z 喜欢盖印章。 有一天,小 Z 得到了一个 n×m 的网格图,与此同时,他的手上有两种印章(分别称为 A,B),如下图所示。 他想将这两种印章盖在这个网格图上。 由于小 Z 是一个有原则的人,他将按照以下规则进行操作。 每个印章所形成的图案的边必须和网格图边重合。对于网格图上的每一个格子,最多只能被一个印章图案覆盖。对于每个印章,可以将印章顺时针旋转 90∘,

蓝桥杯刷题-13-子矩阵-二维滑动窗口 ಥ_ಥ

给定一个 n × m (n 行 m 列)的矩阵。 设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的所有大小为 a × b (a 行 b 列)的子矩阵的价值的和。 答案可能很大,你只需要输出答案对 998244353 取模后的结果。 //四层for循环for(){//行nfor(){//列mfor(){//afor(){//b}}}} //二维单调队列#inclu

蓝桥杯刷题 前缀和与差分-[NewOJ P1819]推箱子(C++)

题目描述 在一个高度为H的箱子前方,有一个长和高为N的障碍物。 障碍物的每一列存在一个连续的缺口,第i列的缺口从第l各单位到第h个单位(从底部由0开始数)。 现在请你清理出一条高度为H的通道,使得箱子可以直接推出去。 请输出最少需要清理的障碍物面积。 如下图为样例中的障碍物,长和高度均为5,箱子高度为2。(不需要考虑箱子会掉入某些坑中)   最少需要移除两个单位的障碍物可以造出一条高

蓝桥杯刷题-06-砍树-图遍历DFS⭐⭐⭐⭐

给定一棵由 n 个结点组成的树以及 m 个不重复的无序数对 (a1, b1), (a2, b2), . . . , (am, bm),其中 ai 互不相同,bi 互不相同,ai ≠ bj(1 ≤ i, j ≤ m)。 小明想知道是否能够选择一条树上的边砍断,使得对于每个 (ai , bi) 满足 ai和 bi 不连通,如果可以则输出应该断掉的边的编号(编号按输入顺序从 1 开始),否则输出 -1.

蓝桥杯刷题--python-36

4199. 公约数 - AcWing题库 def gcd(a,b):     while b:         a,b=b,a%b     return a def init_divisors(a,b):     d=gcd(a,b)     i=1          while i*i<=d:         if d%i==0:             ans.append(i)

蓝桥杯刷题第八天(dp专题)

这道题有点像小学奥数题,解题的关键主要是: 有2种走法固走到第i级阶梯,可以通过计算走到第i-1级和第i-2级的走法和,可以初始化走到第1级楼梯和走到第2级楼梯。分别为f[1]=1;f[2]=1(11)+1(2)=2.然后就可以循环遍历到后面的状态。 f[i]=f[i-1]+f[i-2]; 有点小累(明天再总结看课和文档的笔记)

蓝桥杯刷题day13——乘飞机【算法赛】

一、问题描述 等待登机的你看着眼前有老有小长长的队伍十分无聊,你突然想要知道,是否存在两个年龄相仿的乘客。每个乘客的年龄用一个 0 到 36500 的整数表示,两个乘客的年龄相差 365 以内就认为是相仿的。 具体来说,你有一个长度为 n 的数组,每个数组元素都是一个 0∼36500 的整数。给出 q 个二元组 l,r,判断数组在区间 [l,r] 上是否存在两个差值小于等于 365 的数,

蓝桥杯刷题第六天(去年蓝桥杯买二赠一全网都错了?)

今天主要刷了两道很有意思的题目,使我完全想放弃蓝桥杯了,其中一道全网答案都是错的 这道题感觉用贪心做不了吧 很多特例比如: 6 12 23 25 25 50 50 全网模板算得都是160,我试了很多种办法好像似乎也就暴力遍历可以解决。 学弟的一种状态dp(算是软暴力): https://paste.ubuntu.com/p/24ngSP8RJN/. 我的是只能对特定

蓝桥杯刷题记录之蓝桥王国

只是记录 这题用迪杰斯特拉来就行,我写的是堆优化版本 import java.util.*;public class Main{static Scanner s = new Scanner(System.in);static int n,m,startPoint=1;static List<Edge>[] table;//邻接表,因为是稀疏图static long[] dist;sta

蓝桥杯刷题_day8_动态规划_简单多状态

文章目录 按摩师打家劫舍打家劫舍II删除并获得点数粉刷房子 按摩师 【题目描述】 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。 【输入样例】 [1,2,3,1] 【输出样例】 4 【数据规模与约定】

蓝桥杯刷题之核桃的数量

只是记录 题目链接:核桃的数量,编号210 这个一眼就能看出来是要求三个数的最小公倍数 a ∗ b = g c d ( a , b ) ∗ l c d ( a , b ) ; l c d ( a , b ) = a ∗ b g c d ( a , b ) a * b = gcd(a,b) * lcd(a,b); lcd(a,b)=\frac{a*b}{gcd(a,b)} a∗b=gcd(

蓝桥杯刷题-重新排序

重新排序 差分: s,d = [0]*100010,[0]*100010tmp = 0n = int(input())a = list(map(int,input().split()))a.insert(0,0)for i in range(1,n+1):s[i] = s[i-1] + a[i]m = int(input())for _ in range(m):l,r = m