- 博客(65)
- 收藏
- 关注
原创 Linux解压缩文件失败(gzip: stdin: not in gzip format)
遇到:gzip: stdin: not in gzip formattar: Child returned status 1tar: Error is not recoverable: exiting now如果不想听废话解决方法:file.tar.xz是你的文件名首先打包成tar文件xz -d file.tar.xz然后tar -xvf file.tar进行解压。然后就可以了我遇到这个问题首先是搜了一下,发现是因为压缩包格式为xz,xz是一种压缩文件格式,采用LZMA SDK
2021-05-16 18:10:22
1966
原创 新建 Microsoft Office Word 文档
CSL正在学习《计算机办公自动化》文件的建立与删除。CSL发现,当他新建一个word文档时,会得到一个名为"新建 Microsoft Office Word 文档.doc"的文件,再新建一个,则名为"新建 Microsoft Office Word 文档(2).doc",再新建,便是"新建 Microsoft Office Word 文档(3).doc"。不断新建,编号不断递增。倘若他已经新建了三个文档,然后删除了"新建 Microsoft Office Word 文档(2).doc",再新建一个就又会得
2021-04-10 21:27:09
288
原创 小朋友崇拜圈(DFS)
班里 NN 个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。在一个游戏中,需要小朋友坐一个圈,每个小朋友都有自己最崇拜的小朋友在他的右手边。求满足条件的圈最大多少人?小朋友编号为 1,2,3,\cdots N1,2,3,⋯N。输入描述输入第一行,一个整数 N(3<N<10^5)N(3<N<105)。接下来一行 NN 个整数,由空格分开。输出描述要求输出一个整数,表示满足条件的最大圈的人数。思路:如图可见是让我们求一个最大的圈,题目可知每个点最多只有
2021-04-10 17:28:00
1129
4
原创 灌溉(多源BFS)
小蓝负责花园的灌溉工作。花园可以看成一个 nn 行 mm 列的方格图形。中间有一部分位置上安装有出水管。小蓝可以控制一个按钮同时打开所有的出水管,打开时,有出水管的位置可以被认为已经灌溉好。每经过一分钟,水就会向四面扩展一个方格,被扩展到的方格可以被认为已经灌溉好。即如果前一分钟某一个方格被灌溉好,则下一分钟它上下左右的四个方格也被灌溉好。给定花园水管的位置,请问 kk 分钟后,有多少个方格被灌溉好?输入描述输入的第一行包含两个整数 n, mn,m。第二行包含一个整数 tt,表示出水管的数量。
2021-04-10 16:08:52
362
1
原创 回文日期
题目描述2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也
2021-04-09 23:36:38
287
原创 删除字符
题目描述给定一个单词,请问在单词中删除 tt 个字母后,能得到的字典序最小的单词是什么?输入描述输入的第一行包含一个单词,由大写英文字母组成。第二行包含一个正整数 tt。其中,单词长度不超过 100100,tt 小于单词长度。输出描述输出一个单词,表示答案。简单的一道字符模拟,一直没看懂样例,看懂之后大意就是删除n个数之后的最小的字典序单词,我们可以把它理解成他所有前面的数字都是在删除了N个数字之后最小的,只要还能删除数字并且当前字母的后面还有比他小的,那么我们就可以将他删除,因为有比他还小
2021-04-09 22:13:11
367
原创 寄包柜(快读+map优化)
思路:这题看起来是个很简单的数组查询题,但是他的空间复杂度很大,我们用二维数组是存不下的,我们就可以考虑用map容器来存储,定义map的前一个变量为数组下标的数据类型,后面为存储的数据类型,后面如果嵌套一个map的话就相当于一个二维数组(纯属个人理解),map<int,map<int,int > > q;这就是二维数组的map容器了,最后加个快读优化一下时间就好了。上代码:#include<bits/stdc++.h>using namespace std;in.
2021-04-08 23:02:19
127
原创 挖地雷(爆搜思路)
思路:题目是让我们求一条能挖到地雷数量最多的路径,并且数据比较小(N<=20),我们可以使用爆搜来解决,我们先将n-1个地窖能通向哪个地窖用二维数组存储起来,然后我们从第一个地窖开始搜索,一直搜索到第n个地窖,每次先标记改地窖为已访问,然后将当前地窖的地雷数量传进dfs中,我们进入dfs也是继续进行搜索,枚举哪一条路能够走并且未被访问过,我们就进入搜索,然后用一个check函数来判断当前路径已经没有地窖可走了并且所有的地窖都标记过了我们就判断当前路径的地雷数量是不是大于我们已记录的最大的地雷数量,如.
2021-04-07 18:02:49
201
原创 5倍经验日(动态规划)
现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好友,想着能否把他们干掉。干掉能拿不少经验的。题目描述现在absi2011拿出了x个迷你装药物(嗑药打人可耻….),准备开始与那些人打了由于迷你装一个只能管一次,所以absi2011要谨慎的使用这些药,悲剧的是,没到达最少打败该人所用的属性药了他打人必输>.<所以他用2个药去打别人,别人却表明3个药才能打过,那么相当于你输了并且这两个属性药浪费了。现在有n个好友,有输掉拿的经验、赢了拿的经验、要嗑
2021-04-03 17:06:22
209
原创 领地选择(二维前缀和)
作为在虚拟世界里统帅千军万马的领袖,小 Z 认为天时、地利、人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小 Z 来说是非常重要的。首都被认为是一个占地 C×C 的正方形。小 Z 希望你寻找到一个合适的位置,使得首都所占领的位置的土地价值和最高。输入格式第一行三个整数 N,M,C,表示地图的宽和长以及首都的边长。接下来 N 行每行 M 个整数,表示了地图上每个地块的价值。价值可能为负数。输出格式一行两个整数 X,Y,表示首都左上角的坐标。思路:这道题是一道二维前缀和板子题吧,我们只需要用
2021-03-27 16:25:23
542
原创 农夫约翰(前缀和)
思路:求一个连续的周期,很明显是一道前缀和的题目,我们只需要判断当天的收益加上前面的是否小于0,如果小于则当前数无价值,记录当前最大值并将变量设置为0,这题唯一的一个坑点就是,他的总体收益是可能产生负数的,我们就需要在输入的时候求一个最大值,如果最大值都小于0,那么我们直接输出这个最大值即可,后面的都不用做了,不然就输出0了,题目要求是输出最大收益,那么我们输出一个负数就好了!上代码:#include<bits/stdc++.h>using namespace std;int n,cn.
2021-03-27 15:28:21
239
原创 第十二届蓝桥杯C/C++省赛模拟(第四期)
A题:请问在1900-2020中有多少个质数? 直接暴力筛就可以了,最后结果是16个。B题ask表中80对应的字母:PC题前一百个斐波那契数列中,有多少是3的倍数?//C题估计凉了,开的int计算的,大意了啊,希望考场的机子上有python,python自带高精度也太棒了D题E题F题小Hi的公司经常举办回馈社会的爱心活动。这次小Hi作为志愿者带领社区的孩子们参观了青少年天文馆。他发现孩子们对于摩尔.斯电码非常感兴趣。摩尔斯电码由两种基本的信号组成:短信号“滴"(用字符:表示)以及长
2021-03-26 16:00:21
2033
7
原创 进制转换
思路:短除法,然后避免10进制以上出现字符的情况我们用字符串来存代码:#include<bits/stdc++.h>using namespace std;string num;int convert(string num,int r){ int n=0,s=1; int len=num.length(); for(int i=len-1;i>=0;i--){ if(num[i]<='F'&&num[i]>='A').
2021-03-23 22:53:35
92
原创 深さ優先探索(BFS DFS)
思路:很简单的一道搜索题,我给出了bfs和dfs两种解法,具体看代码,还是挺简单的DFS:#include<bits/stdc++.h>using namespace std;char a[505][505];int n,m,x1,x2,x3,x4;char s;int flag=0;int dx[5]={0,-1,0,1,0},dy[5]={0,0,1,0,-1}; //四个方向bool vis[505][505]; //标记数组bool check(int x,int .
2021-03-22 21:06:45
140
原创 Mashmokh and ACM
如果一个数列中,后一个数都能被前面一个数整除,那么就叫这个数列为好数列。输入n,k,求数列中最大元素为n,数列长度为k的好数列的种数(对1000000007取模)思路有点乱,写出来给自己看的!!#include<bits/stdc++.h>using namespace std;#define mod 1000000007int n,k;long long f[2001][2001],ans;int main(){ cin>>n>>k; for(int
2021-03-22 19:46:44
120
原创 最大加权矩形
思路:先进行矩阵压缩,然后再进行最大加权和来判断是否需要这个数code:#include<bits/stdc++.h>using namespace std;int n,ans;int a[505][505];int s[505];int b[505];int main(){ cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; } } f.
2021-03-21 15:23:35
217
原创 最大约数和
选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。输入格式输入一个正整数S。输出格式输出最大的约数之和。思路:这道题是让我们求一个范围内的多个整数的约数和最大能是多少,我们可以先预处理小于等于m的所有数字的约数和是多少然后通过01背包去求出他的最大约数和,w[i]里面存着当前约数和需要的大小,并且不能超过m在这里插入代码片,总之就是一个01背包的题目code:#include<bits/stdc++.h>using namespace std;int
2021-03-20 14:50:52
219
原创 最大子段和
给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个整数,表示序列的长度 n。第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 a 。输出格式输出一行一个整数表示答案。思路:这道题其实看懂了就很简单,我们可以假设前面输入的数据加上当前数是否大于0,如果大于0则表示这些数是有价值的,我们可以将他们继续向后加,并且记录最大值max,仔细想想,如果前面记录的一段值加上当前输入的值,总和小于0,那么他们就是没有价值的,即使加入进来也不会对当前字段的最大
2021-03-20 14:07:08
191
原创 血色先锋队
巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好聚集了起来,以抵抗天灾军团的围剿。可怕的是,他们之中有人感染上了亡灵瘟疫,如果不设法阻止瘟疫的扩散,很快就会遭到灭顶之灾。大领主阿比迪斯已经开始调查瘟疫的源头。原来是血色先锋军的内部出现了叛徒,这个叛徒已经投靠了天灾军团,想要将整个血色先锋军全部转化为天灾军团!无需惊讶,你就是那个叛徒。在你的行踪败露之前,要尽快完成巫妖
2021-03-12 15:11:09
170
原创 离开中山路(bfs)
题目背景《爱与愁的故事第三弹·shopping》最终章。题目描述爱与愁大神买完东西后,打算坐车离开中山路。现在爱与愁大神在x1,y1处,车站在x2,y2处。现在给出一个n×n(n<=1000)的地图,0表示马路,1表示店铺(不能从店铺穿过),爱与愁大神只能垂直或水平着在马路上行进。爱与愁大神为了节省时间,他要求最短到达目的地距离(a[i][j]距离为1)。你能帮他解决吗?输入格式第1行:一个数 n第2行~第n+1行:整个地图描述(0表示马路,1表示店铺,注意两个数之间没有空格)第n+2行
2021-03-11 22:29:10
333
原创 海战(dfs染色)
在峰会期间,武装部队得处于高度戒备。警察将监视每一条大街,军队将保卫建筑物,领空将布满了F-2003飞机。此外,巡洋船只和舰队将被派去保护海岸线。不幸的是因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。因此,他们考虑培养一些新的海军指挥官,他们选择了“海战”游戏来帮助学习。在这个著名的游戏中,在一个方形的盘上放置了固定数量和形状的船只,每只船却不能碰到其它的船。在这个题中,我们仅考虑船是方形的,所有的船只都是由图形组成的方形。编写程序求出该棋盘上放置的船只的总数。输入格式输入文件头一行由用空
2021-03-10 15:02:05
194
原创 [USACO08FEB]Meteor Shower S(bfs)
思路:简单的bfs,我们可以先将整张图赋值为-1,然后再将陨石砸到的地方和他的周围赋值为砸的时间,要判断一下赋值的边界,记得永远只记录最先砸的时间,意思就是一块地方可能被两个陨石影响,而我们只记录它最早的那个时间,然后进入bfs,先将远点0,0,0压入队列,然后将访问数组的0,0赋值为1,然后进入循环,队列为空时退出循环,每次取队头元素,如果队头的元素为-1,表示它从始至终都没有被陨石砸过,我们就可以输出该队头所记录的步数,否则我们进入下一层循环,判断完边界之后将符合条件的压入队列即可。总之很简单的一道b.
2021-03-08 20:44:59
319
1
原创 奇怪的电梯(bfs)
思路:这道题的解法很多,深搜广搜都可以,而我用深搜来解它,首先我们可以将第一个节点压入队列中,然后我们依次搜索当前楼层可达到的楼层,并且判断是否越界,如果没有越界并且该楼层未被访问过我们就将该节点压入队列中,为什么判断是否被访问呢,因为如果当前到达楼层有正确解的话早就找到退出了,再次访问到它很明显他就是个死循环,所以我们要做一个访问的判断,并且当前楼层压入队列过后也要设置为已访问;上代码#include<bits/stdc++.h>using namespace std;int n,a.
2021-03-08 18:55:14
264
原创 奶牛晒衣服(大根堆)
思路:由于我们每次都是将当前湿度最大的那件衣服使用烘干机,我们可以创立一个大根堆,然后每次将堆顶的元素取出来,然后将他减去烘干机的烘的湿度之后再将它压回大根堆内,因为洪完之后可能这个最大的就被烘干了,并且还有其他衣服没有烘干,我们就判断一下加入当前堆顶元素也就是最大的值减去当前执行时间乘自然风干的时间是不是<=0,如果是的话说明当前所有衣服都烘干了,否则则说明但钱还衣服没有被烘干,我们则继续取除堆顶元素来让烘干机对它进行烘干。上代码:#include<bits/stdc++.h>u.
2021-03-07 16:03:25
153
原创 切绳子(二分答案)最后一天
有 N 条绳子,它们的长度分别为 L 。如果从它们中切割出 K 条长度相同的绳子,这 K 条绳子每条最长能有多长?答案保留到小数点后 2 位(直接舍掉 2 位后的小数)。思路:简单的二分答案,我们可以将刚开始的数字都乘一百来做一个整数运算,然后check函数里面用一个ans加上每个绳子最多可以分成多少根,最后返回分的数量是否大于等于,如果是的话就说明mid开小了,导致超了或者刚好等于这个数字,我们将mid开大一点,如果返回的小于k,说明mid肯定开大了,导致绳子数量没有达到要求,我们直接返回false让r
2021-03-07 15:13:26
235
原创 进击的奶牛
二分答案思路:这个牛栏的思路就是二分答案,因为他要我们求最大的最近距离,我们可以用二分答案来进行试探,如果在当前二分答案的条件下,牛进栏的数量没有达到要求,说明我们二分的距离太大了,导致很多牛都不符合进去的条件,我们将r指针移到mid-1的位置缩小一些二分答案的范围就可以了,如果牛进栏的数量超过或者等于规定的数量,我们把二分答案开的再稍微大一点,来找到一个最大的数,这个数可以放下规定的牛,并且又在l+1的推动下,他是最大的并且在临界点的。上代码#include<bits/stdc++.h>.
2021-03-05 22:38:48
170
原创 路标设置
题目背景B市和T市之间有一条长长的高速公路,这条公路的某些地方设有路标,但是大家都感觉路标设得太少了,相邻两个路标之间往往隔着相当长的一段距离。为了便于研究这个问题,我们把公路上相邻路标的最大距离定义为该公路的“空旷指数”。题目描述现在政府决定在公路上增设一些路标,使得公路的“空旷指数”最小。他们请求你设计一个程序计算能达到的最小值是多少。请注意,公路的起点和终点保证已设有路标,公路的长度为整数,并且原有路标和新设路标都必须距起点整数个单位距离。输入格式第1行包括三个数L、N、K,分别表示公路的长
2021-03-04 20:11:08
448
1
原创 跳石头
二分思路:这是一道典型的二分答案的题目,题目中要求的:求最短跳跃距离的最大值,就是典型二分答案,题目已经给出了二分答案的两个条件:单调性和有界性,单调性就是石头之间的距离是单调递增的,并且给出了他们的起点与终点,我们可以在这一段距离内进行二分答案,然后在check函数中判断我们每次跳跃的距离,假设我们现在二分的答案是正确答案,如果前后两个石头的距离小于我们二分的答案,那么我们就要将他移除,否则就可以跳过这一块石头,最后我们在判断一下移除的石头是不是大于了输入的最大移除数:如果是的话,返回false,因为.
2021-03-04 19:04:57
91
1
原创 数列组合
思路:二分答案+贪心。//返回我们在当前得到的二分答案下最多能开的组别//如果分的组太多的话,说明x小了,很多的数字和都超过了他,导致分的组多了//如果分的组太少的话,说明x大了,导致很多的数字都符合加入的条件,导致分的组很少//如果分的组大于等于m说明当前的x可能是我们的最终解,但还是要向右边搜索来找到最大值//如果分的组小于m,说明x太大了,分的组遥遥不够,并且大于他的全都是非法解,我们直接在mid-1的左方继续进行二分即可代码#include<bits/stdc++.h>.
2021-03-03 20:33:55
155
1
原创 砍树(二分答案)
伐木工人米尔科需要砍倒M米长的木材。这是一个对米尔科来说很容易的工作,因为他有一个漂亮的新伐木机,可以像野火一样砍倒森林。不过,米尔科只被允许砍倒单行树木。米尔科的伐木机工作过程如下:米尔科设置一个高度参数H(米),伐木机升起一个巨大的锯片到高度H,并锯掉所有的树比H高的部分(当然,树木不高于H米的部分保持不变)。米尔科就行到树木被锯下的部分。例如,如果一行树的高度分别为20,15,10和17,米尔科把锯片升到15米的高度,切割后树木剩下的高度将是15,15,10和15,而米尔科将从第1棵树得到5米,从
2021-03-02 20:03:33
724
原创 数楼梯
题目描述楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。思路:经典递归题,算法是高精度+斐波那契数列,一切看注释上代码:#include<bits/stdc++.h>using namespace std;int f[5003][5003],n,len=1;void lt(int k){ for(int i=1;i<=len;i++){ f[k][i]=f[k-1][i]+f[k-2][i]; //每次将前两次的楼梯步数加
2021-03-01 19:41:40
99
原创 外星密码
题目描述有了防护伞,并不能完全避免 2012 的灾难。地球防卫小队决定去求助外星种族的帮 助。经过很长时间的努力,小队终于收到了外星生命的回信。但是外星人发过来的却是一 串密码。只有解开密码,才能知道外星人给的准确回复。解开密码的第一道工序就是解压 缩密码,外星人对于连续的若干个相同的子串“X”会压缩为“[DX]”的形式(D 是一个整 数且 1≤D≤99),比如说字符串“CBCBCBCB”就压缩为“[4CB]”或者“[2[2CB]]”,类 似于后面这种压缩之后再压缩的称为二重压缩。如果是“[2[2[2CB
2021-03-01 19:04:13
141
原创 function(记忆化搜索)
思路:也是看了后面的题解才理解和学会这个算法,这是一道记忆化搜索的好题,因为题目描述了后面的数会非常大,所以我们不可能每个数字都去进行一次递归,我们可以将已经计算过的数字存储起来,当我们要用到它时,判断它是否已被记录,如果已被记录那么我们就直接返回里面存储的值即可:上代码:#include<bits/stdc++.h>using namespace std;#define ll long longll f[25][25][25]; //用一个三维数组来存储,不用把他想得太抽象话,只要.
2021-03-01 18:38:14
319
原创 跳跳!!
这是一道很简单的贪心+排序,为什么我第一次还是wa了一半呢,我是没有料到他的数据给的很大,导致我第一次只开了int,第二次换了long long就过了,这题总体思路就是大小跳,先从大到小排序好因为要找他最多能跳多少的能力,所以一开始肯定是从0跳到最高的地方,这个我们预处理好,然后就是用两个指针指向数组中最大和最小的地方,然后用给flag切换每次大小跳就行了石头调完了小青蛙就可以休息了;注意开Long long;代码:#include<bits/stdc++.h>using namespa.
2021-02-28 23:16:54
138
原创 日期计算
已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。思路:简单翻日历,先判断y-1年 如果是闰年加366否则加365然后剩下那m个月,特判闰月其他全加,然后剩下最后一个月,直接加上所有的日期;然后%7即可,特判7,如果是0就输出7;#include<bits/stdc++.h>using namespace std;int y,m,d;int a[13]={0,31,28,31,30,31,30,31,31,
2021-02-28 17:03:00
86
原创 纪念品分组(贪心算法)
元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入格式共 n+2 行:第一行包括一个整数 w,为每组纪念品价格之和的上上限。第二行为一个整数 n,表示购来的纪念品的总件数 G。第
2021-02-25 20:00:16
1165
原创 蓝桥杯 历届试题 翻硬币
两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度<1000输出格式一个整数,表示最小操作步数。样例输入1**********o****o****样例输出15样例输入2*o**o***o****o***o**o***样例输出21思路:一开始觉得很难的题,后来发现就这啊??,每次判断当前位置是否与b串相等,如果不相等就把b串的这个位置赋值给他,然后判断当前位置加1的地方如果是星号修改为o如果是o修改为星号,然后sum++就行了,总之很水的一道题。#includ
2021-02-25 19:08:45
77
原创 蓝桥杯 历届试题 剪格子
问题描述如下图所示,3 x 3 的格子中填写了一些整数。±-–±-+|10 1|52|±-***–+|20|30 1|*******–+| 1| 2| 3|±-±-±-+我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。如果无法分割,则输出 0。输入格式程序先读入两个整数 m n
2021-02-25 16:22:21
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人