蓝桥杯
一只特立独行的猫
转行web3中。。。
展开
-
PTA 部落 (25 分)测试点分析
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式:输入在第一行给出一个正整数N(≤104),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:K P[1] P[2] ⋯ P[K]其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的编号。这里所有人的编号从1开始连续编号,最大编号不会超过104原创 2021-06-14 09:29:46 · 1628 阅读 · 0 评论 -
蓝桥杯18年国赛 搭积木
小明对搭积木非常感兴趣。他的积木都是同样大小的正立方体。在搭积木时,小明选取 m 块积木作为地基,将他们在桌子上一字排开,中间不留空隙,并称其为第0层。随后,小明可以在上面摆放第1层,第2层,……,最多摆放至第n层。摆放积木必须遵循三条规则规则1:每块积木必须紧挨着放置在某一块积木的正上方,与其下一层的积木对齐;规则2:同一层中的积木必须连续摆放,中间不能留有空隙;规则3:小明不喜欢的位置不能放置积木。其中,小明不喜欢的位置都被标在了图纸上。图纸共有n行,从下至上的每一行分别对应积木的第1层至第原创 2021-05-09 14:52:00 · 685 阅读 · 0 评论 -
C++使用输入流实现python的split函数
利用ssteam库,直接用getlien进行分割#include<iostream>#include<sstream>#include<vector>using namespace std;vector<string> out;int main() { int line; cin >> line; getchar(); for (int i = 0; i < line; i++){ string s; ge原创 2021-03-31 20:42:51 · 164 阅读 · 0 评论 -
蓝桥杯 2014地宫宝库
X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。输入格式 输入一行3个整数,用空格分开:n m k (1&l原创 2021-03-27 16:30:20 · 68 阅读 · 0 评论 -
蓝桥杯2015 牌型总数(组合+剪枝)
小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。思路:假设有13个桶,每个桶里面有4张牌,从中抽取任意数量的牌,使得总数为13。#include<iostream>using namespace std;int cnt;void原创 2021-03-20 10:56:56 · 134 阅读 · 0 评论 -
蓝桥杯2016 交换瓶子(快速排序的思想)
题目描述:有N个瓶子,编号 1 ~ N,放在架子上。比如有5个瓶子:2 1 3 5 4要求每次拿起2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式为两行:第一行: 一个正整数N(N<10000), 表示瓶子的数目第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。例如,输入:53 1原创 2021-03-18 11:44:04 · 320 阅读 · 0 评论 -
蓝桥杯2016 剪邮票(有重复元素的全排列+DFS)
题目:如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。 (仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。思路:先暴力选取5个点,然后判断点是否连通。#include<iostream>#include<algorithm>using namespace std;int cnt;int a[12] = { 0,0,0,0,0,0,0,1,1,1,1,1};原创 2021-03-17 20:29:53 · 102 阅读 · 0 评论 -
蓝桥杯2016 方格填数(二维数组的递归全排列)
题目描述如下的10个格子±-±-±-+| | | |±-±-±-±-+| | | | |±-±-±-±-+| | | |±-±-±-+(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。思路:方法一:由递归法+回溯法可以对一维数组进行全排列,思路还是比较简单,当然也可原创 2021-03-17 16:44:34 · 264 阅读 · 1 评论 -
回溯法生成有重复元素的全排列
就是在有重复元素的全排列的基础上加一个重复检测机制//递归回溯法生成无重复元素的全排列#include<iostream>using namespace std;int cnt;int a[] = { 1,1,1,2};void f(int k) { if (k == 4) {//判断是否符合要求 for (int i = 0; i < 4; i++) cout << a[i]; cout << endl; return; }原创 2021-03-16 17:13:41 · 670 阅读 · 0 评论 -
蓝桥杯2016 凑算式(递归全排列)
这个算式中A-I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。思路:暴力使用全排列,全排列用递归实现。//递归回溯法生成无重复元素的全排列#include<iostream>using namespace std;int cnt;int a[] = { 1,2,3,4,5,6,7,8,9 };.原创 2021-03-16 16:50:39 · 274 阅读 · 0 评论 -
蓝桥杯练习集 绘制地图
问题描述最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情: 1.WYF的点卡工厂构成一颗二叉树。 2.一共有n座工厂。 3.他需要把这颗树上的点以后序遍历的方法列出来,才能绘制地图。 还好,最近他的属下给了他先序遍历和中序遍历的数据。可是,氰垃圾最近还要帮㊎澤穻解决一些问题,没有时间。请你帮帮他,替他完成这项任务。由于氰垃圾的一些特殊的要求,WYF的参观路线将会是这棵树的后序遍历。输入格式第一行一个整数n,表示一共又原创 2021-03-13 14:14:54 · 768 阅读 · 0 评论 -
蓝桥杯2017 k倍区间(前缀和,同余方程)
给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。你能求出数列中总共有多少个K倍区间吗?输入格式第一行包含两个整数N和K。(1 <= N, K <= 100000)以下N行每行包含一个整数Ai。(1 <= Ai <= 100000)输出格式输出一个整数,代表K倍区间的数目。样例输入5 212345样例输出6数据规模和约定原创 2021-03-13 13:44:50 · 260 阅读 · 0 评论 -
蓝桥杯2017 分巧克力
儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?输入第一行包含两个整数N和K。(1 <= N, K <= 1000原创 2021-03-13 11:23:24 · 250 阅读 · 0 评论 -
蓝桥杯2017 包子凑数
小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,大叔就凑不原创 2021-03-12 21:13:33 · 203 阅读 · 0 评论 -
蓝桥杯2017 日期问题
小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?输入一个日期,格式是"A原创 2021-03-11 17:57:07 · 656 阅读 · 0 评论 -
2017蓝桥杯省赛B题 图形分割
题目6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。思路:将对方格的选取改变为对线的选取,由(3,3)点往上下左右四个方向进行DFS,就可以得到结果。#include<iostream>using namespace std;int arr[7][7];int sum = 0;int dir[][2] = { {0,1},{0,-1},{1,0},{-原创 2021-03-10 21:45:01 · 164 阅读 · 0 评论 -
2017蓝桥杯B组省赛 承压计算
标题:承压计算X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1原创 2021-03-10 20:57:33 · 118 阅读 · 0 评论