![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
JZK-Keven
退役ACMer
展开
-
算法训练 比赛安排
问题描述 设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛。设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛。 输入格式 输入文件matchplan.in共一行,输入n的数值。输出格式 输出文件matchplan.out共(2 n – 1)行,第i行输出第i天的比赛安排。 格式为:<i...原创 2018-05-06 14:10:49 · 742 阅读 · 0 评论 -
算法提高 周期字串
问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有座山……”这样循环的故事来搪塞右右。 我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串。 例如: 字符串’abcabcabcabc’周期为3,因为它是由4个循环’abc’组成的。它同样是以6...原创 2018-05-13 20:17:41 · 171 阅读 · 0 评论 -
基础练习 完美的代价
问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma : madam (回文!完美!)...原创 2018-05-08 12:19:01 · 1319 阅读 · 2 评论 -
历届试题 发现环
问题描述 小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。 为了恢复正常传输。小明需要找到所有在环路...原创 2018-05-15 21:07:09 · 1939 阅读 · 13 评论 -
第九届蓝桥杯国赛参赛体会
第一题,74,嗯,水题,做错了,看成了一块的是两块的10倍。 第二题,暴力跑一分半,或者找一下规律,没错,就是斐波那契数列。 第三题,格雷码,树状数组,我都没学过这个东西,我用了几个三目运算符,后来大大佬说这样会错,不满足n==5的情况,emmmm。 第四题,复杂度O(N),我O(N^2),emmmm,我怎么这么菜。 第五题,警察叔叔,就是这题,我写了一个半小时没写出来,写第一遍,发现有情...原创 2018-05-27 14:08:39 · 714 阅读 · 0 评论 -
历届试题 K倍区间
问题描述 给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i &lt;= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗?输入格式 第一行包含两个整数N和K。(1 &lt;= N, K &lt;= 100000) 以下N行每行包含一个整数Ai。(1 &lt;= A...原创 2018-05-23 13:30:37 · 411 阅读 · 4 评论 -
算法提高 学霸的迷宫
问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线。可是他现在正向妹子解释这件事情,于是就委托你帮他找一条最短的路线。输入格式 第一行两个整数n, m,为...原创 2018-05-23 15:39:34 · 570 阅读 · 0 评论 -
算法训练 区间k大数查询
区间第K大,主席树裸题虽然说暴力也能过,但是如果n=1e5呢。主席树code:#include <bits/stdc++.h>#define ll long long#define lson left,mid#define rson mid+1,right#define imid int mid=(left+right)/2;using namespace ...原创 2019-03-19 16:26:54 · 124 阅读 · 0 评论 -
历届试题 小朋友排队
显然每个人的最少次数是左边大于他的人数和右边小于他的人数,两次树状数组扫一下就ok了,由于H=1e6,所以先离散化一下,再套树状数组。Code:#include <bits/stdc++.h>#define ll long longusing namespace std;ll calc(int k){ return 1LL * k * (k + 1) / 2;}...原创 2019-03-18 19:40:50 · 858 阅读 · 0 评论 -
算法训练 字串统计
问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入格式 第一行一个数字L。 第二行是字符串S。 L大于0,且不超过S的长度。输出格式 一行,题目要求的字符串。输入样例1: 4 bbaabbaaaaa...原创 2018-04-27 22:30:07 · 491 阅读 · 0 评论 -
历届试题 分糖果
问题描述 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子。一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入格式程序首先读入一个整数N(2<N<100),表示...原创 2018-04-27 21:28:28 · 206 阅读 · 0 评论 -
算法提高 P1001 大数乘法
大数乘法描述: 当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过8位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过16位),最后把这个字符串打印出来。例如,假设用户输入为:62773417和12345678,则输出结果为:7749803932417...原创 2018-05-11 19:35:48 · 215 阅读 · 0 评论 -
算法训练 集合运算
猝不及防,我这个大一菜鸡居然拿了蓝桥杯省一,可以去北京啦,开心的像一个200斤的孩子,开始新一轮刷题~~~set解决,直接AC。#include<iostream>#include<algorithm> #include<set>using namespace std;int main(){ int i,t,x,n,m,a[10...原创 2018-04-14 16:13:52 · 966 阅读 · 0 评论 -
算法训练 输出米字形
找出 . 符号的规律,根据规律循环AC。#include<iostream>using namespace std;int main(){ int n,i,j,k,l; cin>>n; char ch='A',sh='.',zh; for (i=0,j=n-2;i<n-1,j>=0;i++,j--) { ...原创 2018-04-14 16:15:38 · 709 阅读 · 0 评论 -
算法训练 纪念品分组
贪心算法基本模型,将价格从大到小排序,判断最大的价格能不能与最小的价格放在一起,如果可以,将最小的价格取出,即n--,反之,什么都不做,所以最后答案就是这个循环的循环次数。#include<iostream>#include<algorithm>using namespace std;bool cmp(int a,int b){ return a>...原创 2018-04-14 17:08:21 · 386 阅读 · 0 评论 -
算法训练 入学考试
问题描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” ...原创 2018-04-23 22:15:04 · 709 阅读 · 0 评论 -
历届试题 分巧克力
原创 2018-05-08 20:35:13 · 506 阅读 · 0 评论 -
历届试题 翻硬币
问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo,如果同时翻转左边的两个硬币,则变为:oooo***oooo。现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步...原创 2018-04-25 20:24:28 · 815 阅读 · 0 评论 -
算法训练 回文数
问题描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。 又如:对于10进制数87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884 在这...原创 2018-05-03 19:06:55 · 795 阅读 · 0 评论 -
历届试题 对局匹配
问题描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。 现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, … AN。 小明想了解最多可能有多少名用户同时在线寻找对手,但是系...原创 2018-05-17 09:42:16 · 1149 阅读 · 0 评论 -
算法训练 数列
问题描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…) 请你求出这个序列的第N项的值(用10进制数表示)。 例如,对于k=3,N=100,正确答案...原创 2018-05-10 16:45:54 · 307 阅读 · 0 评论 -
历届试题 包子凑数
完全背包问题,先判所有数的Gcd是否为1,如果不是1的话,显然他们能凑出的数一定是Gcd的倍数,所以一定有无穷个凑不出来,然后两个for解决。Code:#include <bits/stdc++.h>using namespace std;int dp[10005];int a[105];int gcd(int a, int b){ return b == 0 ?...原创 2019-03-18 19:44:18 · 423 阅读 · 0 评论