自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第十二届蓝桥杯省赛试题及其部分答案

这里给大家分享第十二届蓝桥杯B组的试题(c++,java,python基本完全一样)。链接: https://pan.baidu.com/s/1pHQXtKblcuQjn0kZD9LLvg 提取码: vfbv第一题:小蓝准备用 256 M 的内存空间开一个数组,数组的每个元素都是 32 位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB的空间可以存储多少个 32 位二进制整数?答案:256 * 1024 * 1024 * 8 / 32 = 671088648位等于1

2021-04-20 15:23:02 4812

原创 第十二届蓝桥杯砝码称重答案

试题G: 砝码称重【问题描述】你有一架天平和N 个砝码,这N 个砝码重量依次是W1, W2…WN。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。样例:input:31 4 6output:10就是一个动态规划,每次状态转移dp[ i ][ j ] 表示加上第i个砝码 j 重量是否可以被称出,也就是当前用了1 到 i 种砝码。#include <bits/stdc++.h>using namespace std;const long long in

2021-04-18 19:47:38 8153 15

原创 蓝桥杯跑步锻炼

【问题描述】小蓝每天都锻炼身体。正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。答案8879#includ

2021-04-06 14:41:16 265

原创 所有子串的全排列(dfs模板)

所有子串的全排列输出一个字符串里所有的子串的全排列#include <bits/stdc++.h>using namespace std;char s[10] = {'a','b','c','d','e','f','g'};bool vis[10];char ans[10];int i;void dfs(int n){ if(n == i){ for(int k = 0;k < i;k++){ pr

2021-04-05 21:21:56 285

原创 dp最大区间和最大矩阵

question 1:Acwing视频讲解输入一个 非空 整型数组,数组里的数可能为正,也可能为负。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。输入:81 -2 3 10 -4 7 2 -5输出:18解析:首先我们因该知道 a[ i ]前一个位置的区间最大值影响 a[ i ]位置区间最大。我们分析数组每一个元素都为必选,对于数组里必选第i个数a[ i ],所以到必选a[ i ] 的位置时,这时区间最大应该为 ma = max(a[

2021-02-03 21:15:01 545 1

原创 栈的思维题

题目:Click GO!!!输入n,代表将会把1~n 随意的压入栈中,add代表入栈一个数,remove代表出栈一个数,严格按照1,2,3,4。。。。的顺序出栈。如果不能按顺序则需要一次排序,问需要排序多少次?思路: 当我们经过一次排序后,其实后面的数都为有序的,并不影响后面的。也就是说后面是否需要排序不受已经排序过的数影响。要点: 每次排序后直接清空...

2021-01-12 17:48:31 106

原创 Codeforces Round #693 (Div. 3)

A. Cards for Friends题意:给出w,h,n三个变量,w和h分别代表一张卡片的长和宽(进行裁剪),n代表需要分给n个朋友。如果满足分给n个朋友,输出YES。否则NO。裁剪条件:w和h为偶数。思路:只要满足n <= 最多裁剪数#include<bits/stdc++.h>using namespace std; int main(){ long long t, a, b, n; scanf("%lld",&t); while

2021-01-05 19:46:05 110

原创 Codeforces Round #687 (Div. 2

A. Prison Break传送门Go题意:有一个n*m的监狱,每一个格子有一个犯人,坐标为( r , c )的格子有一条逃生通道,犯人每一秒可以向相邻的且有人的一个格子移动,移动方向为上下左右,问所有犯人到达逃生通道最久需要多少秒。in put:代表3种情况,m,n,r,c310 10 1 13 5 2 410 2 5 1out put:1846注意不可以斜着走,所以只需要考虑四个角的犯人用的时间最多的即可。而这四个角都是(r,c)到相邻两条边的距离,所以只需要找到(r

2020-12-10 15:57:01 133

原创 Codeforces Round #686 (Div. 3)

题目GO!!!A. Special Permutation题意:给出一个数n,打印一组1~n的全排列,要求:打印的每个数都不能与位置号一样。n=2, 要打印2 1n=3 , 要打印 3 1 2 或者 2 3 1#include<bits/stdc++.h>using namespace std;int main(){ int t,b; cin>>t; while(t--){ cin>>b; for

2020-11-26 16:01:36 109

原创 Educational Codeforces Round 98 B. Toy Blocks

很棒的一道题目。翻译:有n个箱子,每个箱子有i个积木。你选择其中任意一个箱子,添加任意个积木(可以为0)。使得你可以选择其中任意一个箱子,把这些积木全部放到其他箱子里,并且使其他所有箱子都有相同数量的积木。求最少需要的放多少?题解:1:放完后的每个箱子积木数一定大于等于:情况1 sum/(n-1)(可以整除)情况2 (sum/(n-1))+1(不可以整除)2:( 在选择含有积木最少的箱子的情况下)所以总数一定不小于max*(n-1),max是含有积木最多的箱子里的积木数input333.

2020-11-23 21:29:44 255

原创 双指针洛谷 P1102 A-B 数对

去做题,冲冲冲!题目:给出一串数以及一个数字 CC,要求计算出所有 A - B = CA−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。inout:4 11 1 2 3output:3我们先把数列排序,这样就可以双指针做了。l和r 代表左指针和右指针如果s[r] - s[l] > k 就移动左指针如果s[r] - s[l] < k 就移动右指针如果s[r] - s[l] == k 说明找到两个目标数考虑:若k =1如:1 1 2 2 2这

2020-11-18 17:37:11 538

原创 CF #681 Div.2 C. The Delivery Dilemma

describe:小明点了n个菜,每个菜都在不同的餐馆,他可以选择送餐和自取两种方式。自取只能一件一件拿给出两个数组,a,b分别表示n个菜送餐的时间和n个菜自取的时间。求出最短需要时间。输入t 和 n ,表示t组数据,n表示a,b数组的长度For example, if Petya wants to order n=4 dishes and a=[3,7,4,5], and b=[2,1,2,4], then he can order delivery from the first and

2020-11-04 19:53:36 161

原创 Educational Codeforces Round 97 (Rated for Div. 2)

C:Chef Monocarp题目:把N个食物同时放到烤箱,每一个食物都有最佳的烤制时间,现在需要取出食物,每个分钟点只能拿出一个食物,求出最小的不满意值。(当需要烤5分钟的食物,烤了3或7分钟,不满意值为2)最多200个食物,时间在0~200之间,所以i从0遍历到400dp [ i ][ j ]表示第 i 时刻选取了前 j 个的最小时间使用动态规划遍历1~400的时间点,求出所有的最小点。#include <bits/stdc++.h>using namespace std

2020-10-30 21:30:35 402 2

原创 神奇的字符串集合

第一个describe :给一个AB串,可以消除里面的所有的AB和BB,希望得到最短的串的长度。AABABBA → AABBA → AAAin put3AAABABAAABBBABBBBout put320#include<bits/stdc++.h>using namespace std;char s[200005];int main(){ int t, ans; cin>>t; while (t--){

2020-10-27 20:13:00 150

原创 hud4528 题解小明系列故事——捉迷藏

四维数字+BFS:本题需要记录已经发现大明(D)和二明(E)的状态,所以需要用一个四维数组vis分别记录发现D和E和位置x,y的坐标。匪夷所思为什么要用四维数组,因为当你发现其中D或者E其中一个后,之前的路已经被标记,但我们仍然需要继续搜索,并且可能需要走已经走过的路线。这样我们就不可以只标记位置xy了,vis[0][0][6][6]==1记录走过,发现了D后可能需要记录继续走[6][6]这个点,去找E。那么则搜查就变成了去搜素vis[1][0][6][6]这个点是否走过,这样才可以走这个点。Des

2020-09-12 11:51:05 207

原创 最大上升序列Super Jumping! Jumping! Jumping!

多组输入,第一个数代表有多少个数据,输入0结束。Sample Input3 1 3 24 1 2 3 44 3 3 2 10Sample Output41031到3最大1到2到3到4最大直接到三最大#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#include <cmath>#include <cstrin

2020-09-08 21:00:13 204

原创 hdu 1879 畅通工程 Kruskal

本题使用使用最小生成树解决,用一个结构体储存左界,右界和距离(权值)。把所有路线的距离从小到大排序,从最短的路开始,需要并查集来确定是否形成一个环,如果不是环,则存入。Description某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input多组输入。每个测试用例的第1行给出村庄数目N ( < 100

2020-08-25 21:17:58 121

原创 记忆化搜索 滑雪VIJOS-P1011

Description顺治喜欢滑雪,这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待太监们来载你。顺治想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9顺治可以从某个点滑向上下左右相邻四个点之一,当且仅

2020-08-15 20:12:16 171

原创 动态规划 找零钱

Descriptiondou想换点零钱,ala的店铺中使用的是ala货币系统,有n种面额的硬币,dou不想揣太多的硬币,所以想知道能换到最少的硬币数。Input第 1 行,为 N 和 S,其中 1≤N≤50 为硬币系统中不同硬币数;1≤S≤100000 s为总钱数第 2 行为 N 个数值不大于 65535 的正整数,它们是硬币系统中各硬币的面值,保证不会重复。Output如 S 能被硬币系统中的硬币替换,请输出最少的替换硬币数。如 S 不能被硬币系统中的硬币替换,请输出剩下钱数最少的方案中的最

2020-08-14 17:46:13 257

原创 dfs 从m个数选n个得到各种运算最大最小

用深度优先搜索在m个数里选择n个进行操作Description:包含一个整数,从n个数中选取任意m个数进行异或得到的最大值Input8 21 2 3 4 5 6 7 8Output151 ^ 1 =1,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0,仍何数亦或 0都为这个数。选取7和8进行异或,得到最大的值15。#include<bits/stdc++.h>using namespace std;long long a[12];long long sum,t

2020-08-14 11:53:12 416

原创 迷宫系列之bfs+优先队列

Description"Z"代表zser学长。"*"代表墙。"+"代表路。"P"代表守卫。"F"代表解救zser学长的盟友。求盟友解救zser的最小步数,规定盟友非常强大足以击败所有的护卫,并且走护卫这个点的时间为2(因为解决护卫需要时间),走普通道路时间为1.规定护卫和zser不会动,盟友只能向上,下,左,右.Input输入一个T,表示T组数据。T<=100输入 : 第一行输入两个整数代表n,m(1<=n,m<=200).紧接着是n行,每行有m个字符.Output

2020-08-12 10:20:50 258

原创 LCS最长公共子序列

Description两个字符串, 求两个字符串最长公共子序列的长度读入遇到 ‘.’ 结束字符串的长度不超过5000Sample Input CopyABCBDAB.BACBBD.Sample Output Copy4公共子串为BCBD#include<bits/stdc++.h>using namespace std;char a[5009];char b[5009];int dp[5009][5009];int main(){ scanf("%s",

2020-08-08 18:12:27 105

原创 差分法 学校门前的树

Description校门外长度为L的马路上很有多颗树,每两棵相邻的树之间的间隔是1米。我们可以简化的把马路看成一个数轴,马路的一端在数轴中x=0的位置,另一端在x=L的位置;数轴上的每个整数点即0,1,2,3…L,都种有一棵树。现在光头强要把其中一些区域中的树全部砍走。已知任一区域中的起点和终点都是整数,区域之间可能有重合的部分。现在你的任务是计算这些树被平头砍走后,马路上还剩下多少棵树。Input题目数据有多组,对于每组的数据:第一行输入两个数L(1 <= L <= 500000)和

2020-08-05 20:54:45 199

原创 dfs 1~9全排列

使用DFS,输入n,输出1~n的所有全排列#include<stdio.h>int n,a[10],book[10];void dfs(int step)//step 表示当前在第几个位置{ int i; if(step==n+1)//如果step==n+1表示前n个数字已经放好 { //输出 for(i=1;i<=n;i++) printf("%d",a[i]); printf("\n"); } for(i=1;i<=n;i++) i

2020-08-04 16:52:53 255

原创 背包方案数问题

ala的杂货店(开店第三天)Descriptionm元钱来买东西,n种物品中每种物品有一个对应的价格,想知道花光m元钱可以购买的物品方案总数。Input数据为单组数据的第一行有两个整数,分别为n件物品和m元钱(1<=n<=200,1<=m<=200)第i行为第i种物品的价格w[i]元(1<=w[i]<=200)数据保证没有两种物品价格重复Output输出一行为可以购买的方案总数Sample Input Copy3 5123Sample Out

2020-08-04 12:11:53 376

原创 01背包 买东西

ala的杂货店(开店第二天)Description带着m元钱来买东西,有n件物品,每件物品有一个实用值和对应的价格,想在m元钱内买到实用值最多的物品组合。这次由于ala拿出的物品比昨天多,所以dzl可以很轻松的计算出来。dzl急着去找女朋友,就想让你帮他解决这个问题。Input数据的第一行有两个整数,分别为n件物品和m元钱(1<=n<=1000,1<=m<=1000)第i+1行为第i件物品的实用值c[i]和价格w[i]元(1<=c[i],w[i]<=1000)

2020-08-04 11:31:27 174

原创 NSUOJ 1117: 字符排列问题

Description有n个字母,列出由该字母组成的字符串的全排列(相同的排列只计一次)。Input输入有多组测试数据,第一行输入是字母个数n,1<=n<=20。接下来一行输入的是待排列的n个字母。Output计算出的n 个字母的所有不同排列总数Sample Input Copy4aaccSample Output Copy6题解思路:用所有字母的排列数除以每个重复字母排列数。abcd排列数:1234abcc排列数:1234 / ( 11(1*2) )#includ

2020-08-03 10:27:25 305

原创 柱状图中最大的矩形改编

输入一个N,代表下面有N个柱体。(0<n<=1000000)输入N个柱体的长度ai,(1=<ai<=100)输入N个柱体的宽度bi.(1<=bi<1000000000)六个柱体,宽度都为1,可形成的以第一个,面积为2以第二个,面积为6以第三个,面积为10以第四个,面积为6以第五个,面积为4以第六个,面积为3Output输出一行表示最大矩形面积例:input72 1 4 5 1 3 31 1 1 1 1 1 1output8#incl

2020-07-29 22:53:08 101

原创 最右边第一个比当前大的NUS 2586单调栈

给出一组数据,求出各个位置第一个比自己大的位置,0代表没有。1 2 3 1 1 1 1 4 52 3 8 8 8 8 8 9 0我们暴力办法就是一个一个比较,时间复杂度n*n。如果中间插了1亿个1,则是个天文数字,所以需要使用单调栈。思想:如果空栈或者当前位置值小于等于栈顶值,则入栈该位置。否则,一直更新位置并出栈descript:有n座山,他们连在一起成一条直线,接着从左往右给出每座山的高度a[i],现在的问题是让你求的每座山右边的第一个比它高的山是第几座山呢?如果没有则输出0。测试数

2020-07-29 16:40:27 167

原创 NSUOJ 2567困难的回文串

回文串判断太多方法了,暴力,哈希,manacher。。。描述:测试数据有多组:对于每组测试数据输入一个n表示字符串长度,接着输入长度为n的字符串(1 <= n <= 1e7),对于每组输出判断当前字符串是否为回文串,如果是回文串输出YES,否则输出NO。Input6aaaaaa6xuejieOutputYESNO这道题其实可以加上双哈希来精准判断,无奈超时,所以我有两个mod和x也就是base#include<stdio.h>#include<str

2020-07-28 20:02:51 293

原创 51Nod 1118机器人走方格

51Nod 1118DescripM * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。Input第1行,2个数M,N,中间用空格隔开。(2 <= m,n <= 1000)Output输出走法的数量。例:输入:2 3输出:3这个题目很简单,我们可以思考它的子问题,计算从(1,1)到(m,n)的种类,可以变换成(1,1)到(m-1,n)和(m,n-1)的种类,若分别为x和y,则有x+y种

2020-07-28 19:42:30 220

原创 迷宫二T1596 bfs与dfs

一道经典迷宫题目:使用bfs与dfs都可以解,bfs时间复杂度高一点非常非常好的题Description>第一行输入两个整数n和 m,表示这是一个 n×m 的迷宫。接下来的输入一个 n 行 m 列的迷宫。其中 ‘S’ 表示蒜头君的位置,’*‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.'移动,'T’表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上,下,左,右)。输出蒜头君逃出迷宫的最少步数,如果蒜头君无法逃出迷宫输出 −1。Inpot>3 4S**.…*.

2020-07-27 22:45:55 293 2

原创 KMP基础题目合集

kmp首先对字符串进行处理,找到相同前后缀,减少遍历次数,举几个例子·a a b a a b a a a-1 0 1 0 1 2 3 4 5 2·a b c d a b c a-1 0 0 0 0 1 2 3 1i/(i-Next[i]) 当前串的长度/循环节的长度 =连续重复数据组数-1是对Next [0] 数组的初始化,字串与父串分别一个指针,从0开始,如果no match,则子串返回Next值的位置,减少重复对比。NUSOJ 2867题意:有T组数据,每组数据有两个数组a,b,长度

2020-07-27 22:21:24 806

原创 bzoj3555[Ctsc2014]企鹅QQ哈希hash

deccribie小Q是PenguinQQ网站的管理员,他最近在进行一项有趣的研究——哪些账户是同一个人注册的。经过长时间的分析,小Q发现同一个人注册的账户名称总是很相似的,例如Penguin1,Penguin2,Penguin3……于是小Q决定先对这种相似的情形进行统计。小Q定义,若两个账户名称是相似的,当且仅当这两个字符串等长且恰好只有一位不同。例如“Penguin1”和“Penguin2”是相似的,但“Penguin1”和“2Penguin”不是相似的。而小Q想知道,在给定的n 个账户名称中,有多

2020-07-22 21:10:50 185

原创 HDU - 1029 Ignatius and the Princess IV

DP动态规划水题,小技巧describe“OK, you are not too bad, em… But you can never pass the next test.” feng5166 says.“I will tell you an odd number N, and then N integers. There will be a special integer among them, you have to tell me which integer is the special

2020-07-19 22:48:19 138

原创 二分法应用NUSOJ 3053集N“福”

写了那么多简单的二分法,这次来一个需要思考的二分法吧,强大的二分法!!!!Description:众所周知!支付宝每年都会推出线上集五“福”活动来吸引流量,有着传统祖训的腾讯怎么会坐视不管!本着“你可能小赚,但我永远不亏”的原则推出了线上集N“福”活动。zzl学长作为腾讯的忠实粉丝早就关注活动很久了。已知:zzl学长有n种“福”卡,第i种福卡的数目为ai,并且有m张万能福(万能福可以代替任意一种福卡),zzl学长可以用n种福卡各一张来合成一个抽奖碎片,合成过程中可以使用万能福,但是每次合成最多使用

2020-07-04 22:44:54 177

原创 NSUOJ 2671 二分法应用之解方程

二分法应用之解方程8x^4 + 7x^3 + 2x^2 + 3x + 6NUSOJ 2671Problem:Now,given the equation 8x^4 + 7x^3 + 2x^2 + 3x + 6 == Y,can you find its solution between 0 and 100;Now please try your lucky.InputThe first line of the input contains an integer T(1<=T<=1

2020-07-04 21:57:37 147

原创 N皇后问题 HDU - 2553详解

N皇后问题 HDU - 2553DFS经典问题八皇后问题:我使用的是DFS、回溯、递归法题目:在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。In Put共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。输入:1 8 5 0Out Put共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。输出:

2020-06-27 21:28:24 228

原创 二重两重双重指针链表实现电子科大头插法尾插法增删改

今天我写了一个双重指针的链表!!!也就是指针的指针,用指针存储结构体地址,用双重指针储存地址的地址。这里代码添加了大量注释代码如下:#include<stdio.h>#include<stdlib.h>typedef enum Status{ success,fail,fatal,range_error} Status;typedef struc...

2020-05-02 11:42:58 320

原创 判断素数的五种方法最全埃筛素数欧筛素数孪生素数

前言: 判断素数是编程中经常应用的实例,是编程学习的重要知识,那么下面我将介绍五种判断素数的方法。定义: 素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。简单来说就是,如果一个数只能被1和它本身整除,那么这个数就是素数。比如:2 3 5 7 11 23…0和1既不是素数也不是合数,2是最小的素数。方法(一)暴力法最简单最暴力的方法就...

2020-05-01 19:34:17 5962 2

空空如也

空空如也

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

TA关注的人

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