自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯-字符串编码(任何样例都能跑)

蓝桥杯-字符串编码这道题网上的题解还是蛮多的,但是很多都存在问题,并没有思考到某些特殊情况,看问题太片面了,这也是你能考到这篇博客的原因,也是它存在的理由。【问题描述】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大 写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z → 26。这样一个字符串就能被转化成一个数字序列:比如 ABCXYZ → 123242526。现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样 的还原有可能存

2021-04-08 02:18:30 803 1

原创 令我眼前一亮的代码(三)n & (n - 1)

n & (n - 1)的作用是将n在二进制下最后的一个1变为0从而得到另一个数,即其运算结果恰为把 n 的二进制位中的最低位的 1 变为 0 之后的结果。如:6&(6−1)=4,6 & (6−1)=4,6=(110) ,4=(100) ,运算结果 为4即为把 66 的二进制位中的最低位的 1 变为 0 之后的结果。可以用将其用在求一个数在二进制状态下中1的个数,如public class Solution { public int hammingWeight(

2021-03-22 21:45:21 244

原创 单词分析(第十一届蓝桥杯第二场省赛)

HashMap根据value值来排序【问题描述】【输入格式】【输出格式】【样例输入】【样例输出】【样例输入】【样例输出】在使用HashMap或者其他容器时,我们经常碰到需要自定义排序,以这道省赛题为例,来看看怎么通过Collections来设置。【问题描述】小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不 住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得 最多来分辨单词。现在,请你帮助小蓝,给了

2021-03-15 21:07:16 400

原创 2020年蓝桥杯国赛JavaB组部分题解

前言开始准备2021年蓝桥杯大赛了,自然真题是最好的练手题,这里只收录有能力解出的题,而在比赛的时候没能解出的题…其中代码可能不是全部都是自己写的,但必须是全部弄明白的B题 扩散题目描述小蓝在一张无限大的特殊画布上作画。这张画布可以看成一个方格图,每个格子可以用一个二维的整数坐标表示。小蓝在画布上首先点了一下几个点: (0; 0), (2020; 11), (11; 14), (2000; 2000)。只有这几个格子上有黑色,其它位置都是白色的。每过一分钟,黑色就会扩散一点。具体的,如果一个

2020-12-19 22:46:36 1447 2

原创 做个简单的记录或总结吧

关于写博客看了看以前的博客的日期,已经好久没有写过博客了,上一篇认真写的博客还是5月份准备蓝桥杯的时候写的,现在蓝桥杯国赛都过去好久了,虽然中途没停止过刷题,但是也没再写过那样的博客了,一来觉得写博客有点费时间,二是我写博客的初衷也只是为了帮助我学习,只有能够把每一步都能清楚的讲出来,才是真正的弄明白了,也能方便我复习。没有继续下去的原因是我把贪出来的时间都用来玩了,真可耻关于习惯我这个人从来就没有回顾知识的习惯,只有等到我再次需要这个知识但我又忘了的时候,我才会回头看看,这是个不好的习惯,我也好多次

2020-12-18 22:37:57 143 2

原创 字典序排序-Java

字典序排序求全排列import java.util.Arrays;/** * @author 毛毛虫 * @create 2020-09-24 10:40 */public class dictionaryOrder { void swap(int arr[],int a,int b){ int temp = 0; temp = arr[a]; arr[a]=arr[b]; arr[b]=temp; }

2020-10-07 12:09:48 277

原创 油管最火KMP算法讲解,阿三哥的源代码!

阿三哥的YouTube频道来自阿三哥Github上的源码package com.interview.string;/** * Date 09/22/2014 * @author tusroy * * Do pattern matching using KMP algorithm * * Runtime complexity - O(m + n) where m is length of text and n is length of pattern * Space complexi

2020-08-18 16:10:01 1054

原创 PREV-14高僧斗法(尼姆博弈)Java版,可能是全网最详解了

PREV-14高僧斗法(尼姆博弈)Java版,可能是全网最详解了前言高僧斗法,名字倒是挺有意思,大威天龙…这道题中涉及到了一个我从未接触到的知识,尼姆博弈,对于尼姆博弈,必须要知道奇异局势,以及怎么给对手造成奇异局势,我觉得看百度百科尼姆博弈应该就能明白这些了,知道这些就完全足够解决这道题了。好吧,现在来看看这道题。问题描述古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。  节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)

2020-05-29 12:41:48 1113

原创 PREV-13 网络寻路(Java详解)

PREV-13 网络寻路(Java详解)前言我承认不会dfs ,菜的一匹…这道题不仅考了dfs,还考察了处理数据,如果正常输入直接用二维数组做,会超时,所以用到了BufferedReader缓冲流和ArrayList列表。在网上看到代码,我给他加上了注释…原文问题描述X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地址可以相同,但中

2020-05-26 18:19:10 463

原创 PREV-10幸运数(Java详解)

PREV-10幸运数(Java详解)前言这道题不算太难,困扰我最久的是没读明白题,1到20的幸运数算出来了,30到69的幸运数算得离谱,后来才发现理解错了题,算30到69幸运数那个序列我以为是30到69,实际上是1到69,最后得到30到69之间有多少个幸运数(我枯了),弄懂题后就好解决了,下面还是两种代码,都能AC,代码1是蓝桥真题讲解中的,通过一个数组,每次通过挪动其中的数字来处理,代码2是我自己的想法,通过一个ArrayList,每次通过删除来处理。这道题千万不能通过反复构造数组来处理,不然效率肯定

2020-05-16 12:35:10 311 1

原创 PREV-9大臣的旅费(Java详解)

PREV-9大臣的旅费(Java详解)前言两个版本,一个是二维数组实现的,只能得75分,最后一个案列不能通过,内存超限,二是用泛型数组,可以能完全AC,这道题是dfs,具体做法是将数据储存到二维数组中,实际上代码2用的泛型数组也是做了一个二维数组,其中行表示该点,列表示该点的相邻点,表示的值是两个点之间的距离。本题的思想是一遍dfs从首都出发,找到离首都最远的城市,第二次dfs从最远的城市出发,得到最远的距离。问题描述很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都

2020-05-14 22:03:33 156

原创 PREV-8买不到的数目(Java)详解

PREV-8买不到的数目(Java)详解前言这道题吧,难在数学吧,代码方面还是简单的,好吧,这就是一道数学题.其中的数学原理我也讲不清楚(可能也是还没真正理解到这道题)还是看视频吧,这道题是第四届(2013年)蓝桥杯C++A组第8题,可以在对应蓝桥真题讲解视频中找到.下面是我从中得到的一些理解:这道题即就是解ax+by=c的不定方程式,a,b是系数,即输入的样例,x,y是未知数,c是可以买到的...

2020-04-30 19:20:07 302 2

原创 PREV-7连号区间数(Java)详解

PREV-7连号区间数(Java)详解前言读了半天题,没明白啥是连号区间,又没一个样例,后来才知道,拿第一个输入样例来说,[1,1],[1,2],[1,3],[1,4],[2,2],[3,3],[4,4]这7个就叫连号区间,分别对应的是[3],[3,2],[3,2,4],[3,2,1,4],[2],[4],[1].可能是语文水平太差了.下面给出两份代码,一份是自己的想法只能得80分,一份是蓝桥...

2020-04-29 13:59:19 299

原创 PREV-6翻硬币(Java)

PREV-6翻硬币(Java)前言这是一道简单题,只要用心去想很容易就想到了问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:##oo###oooo如果同时翻转左边的两个硬币,则变为:oooo###oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两...

2020-04-27 22:00:15 187

原创 PREV-5错误票据(Java)详解

PREV-5错误票据(Java)详解前言这是2013年JavaB组中的第七题,在同年的其他组别中也出现.题不算难,输入有点小麻烦问题描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的...

2020-04-27 11:35:38 284 1

原创 PREV-4剪格子(DFS深搜)Java

剪格子前言这是一道搜索题,是我不擅长的领域,我发现我只会暴力破解,然后这道题,于是又看蓝桥真题讲解上的视频.问题描述如下图所示,3 x 3 的格子中填写了一些整数。我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。如果存在多种解答,请输出包含左上角格子...

2020-04-17 21:02:47 165

原创 PREV-3带分数(内含递归求全排列的套路)Java

PREV-3带分数(内含递归求全排列的套路)Java前言最开始看到这道题我是打算直接暴力解决,九个for循环写完后才发现,我却不知道怎么表示判定的条件,结果想了一会儿后,还是放弃了,现在看来其实也可以写的,就用下文的判断思想.下文的题解是蓝桥真题讲解视频中的思路,先全排列得到1到9的一串数字然后在其中枚举放入加号和乘号,最后判断等不等于N.题目100 可以表示为带分数的形式:100 = 3...

2020-04-14 23:42:15 180

原创 PREV-2 打印十字图(Java)两种解法(递归and分治)

吐槽一下,官方给出的图我真的是看不出十字,更找不到任何规律.还有就是真的太久没刷题,思维就跟不上了,太菜了.题目要求就不写了,直接上一张能看明白的图吧这才叫十字啊(抠鼻)题解1(递归解法)这个大十字可以看成是一个个的红圈儿和中间的那个十字组成的,只要在一个二维数组中画出了最外层的红圈,就能用相同的方法,画出所有的红圈,再加上中间的十字,这个题就OK了,递归的过程就是在二维数组中从外向里画红...

2020-04-11 18:12:51 196

原创 常用小算法和高效API(持续更新中)

刷题中常见的小算法(持续更新)一.求最大公约数1.辗转相除法(欧几里德算法)public static int solve(int m, int n) { int result = 0; while (n != 0) { result = m % n; m = n; n = result;...

2020-04-10 11:15:25 305

原创 OJ系列-UVA202( Repeating Decimals)java版

签到,今天是连续OJ系列的第14天.明天开始上课了,可能OJ系列就不能连续了题目输入整数a和b( 0≤a≤3000, 1≤b≤3000) , 输出a/b的循环小数表示以及循环节长度。 例如a=5, b=43, 小数表示为0.(116279069767441860465), 循环节长度为21。样例输入76 255 431 397样例输出76/25 = 3.04(0) 1 =...

2020-03-01 14:37:23 177

原创 OJ系列-UVa1368(DNA Consensus String)java版

签到,今天是连续OJ系列的第13天题目输入m个长度均为n的DNA序列, 求一个DNA序列, 到所有序列的总Hamming距离尽量小。 两个等长字符串的Hamming距离等于字符不同的位置个数, 例如, ACGT和GCGA的Hamming距离为2( 左数第1, 4个字符不同) 。输入整数m和n( 4≤m≤50, 4≤n≤1000) , 以及m个长度为n的DNA序列( 只包含字母A, C, G,...

2020-02-29 11:12:26 172

原创 OJ系列-UVA232(Crossword Answers)java版

签到,今天是连续OJ系列的12天。Crossword Answers, ACM/ICPC World Finals 1994,又是一道决赛题,在没有经过任何查找网上的代码的情况下,自己写出了这两道决赛题(OJ系列第11天),并且AC,还是小有成就感的。题目输入一个r行c列( 1≤r, c≤10) 的网格, 黑格用“*”表示, 每个白格都填有一个字母。 如果一个白格的左边相邻位置或者上边相邻位...

2020-02-28 11:33:54 229

原创 OJ系列-UVA227(Puzzle)java版

今天是连续OJ系列的第11天,打个卡,明天写内容

2020-02-27 15:15:47 239

原创 OJ系列-Uva455(Periodic Strings)java版

签到,今天是连续OJ系列的第10天题目:如果一个字符串可以由某个长度为k的字符串重复多次得到, 则称该串以k为周期。 例如, abcabcabcabc以3为周期( 注意, 它也以6和12为周期) 。样例输入1HoHoHo样例输出2代码import java.util.Scanner;//求最小周期长度import java.lang.String;public class...

2020-02-25 22:58:26 86

原创 OJ系列-UVA1225( Digit Counting)java版

签到,今天是连续OJ系列的第九天真的很烦OJ题的输出。题目特朗对他的数学作业感到厌烦。他拿起一支粉笔开始写一个1到N(1<N<10000)开始的连续整数。在那之后,他计算每个数字(0到9)在序列中出现的次数。例如,N=13时,序列为:12345678910111213在这个序列中,0出现一次,1出现6次,2出现2次,3出现3次,每个从4到9的数字出现一次。在玩了一会儿之后,特朗...

2020-02-24 21:14:41 181

原创 OJ系列-UVA1586(Molar Mass)java版

签到,今天是连续OJ系列的第八天。遇到问题正面面对!题目给出一种物质的分子式( 不带括号) , 求分子量。 本题中的分子式只包含4种原子, 分别为C, H, O, N, 原子量分别为12.01, 1.008, 16.00, 14.01( 单位: g/mol) 。 例如, C6H5OH的分子量为94.108g/mol。样例输入4CC6H5OHNH2CH2COOHC12H22O11...

2020-02-23 22:46:23 124

原创 OJ系列-UVA1585( Score)java版

签到,今天是连续OJ系列的第七天!今天的题格外简单,是不是应该再刷一题?题目给出一个由O和X组成的串( 长度为1~ 80) , 统计得分。 每个O的得分为目前连续出现的O的个数, X的得分为0。 例如, OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。样例输入5OOXXOXXOOOOOXXOOXXOOOXOXOXOXOXOXOXOOOOOOOOOOOOOO...

2020-02-22 21:54:18 358

原创 OJ系列-UVA1584(Circular Sequence)java版

签到,今天是连续OJ系列的第六天!不积小流,无以成江海。简单说一下题意,长度为n的环状串有n种表示法, 分别为从某个位置开始顺时针得到。 例如, 上图的环状串有10种表示:CGAGTCAGCT, GAGTCAGCTC, AGTCAGCTCG等。 在这些表示法中, 字典序最小的称为"最小表示"。输入一个长度为n( n≤100) 的环状DNA串( 只包含A、 C、 G、 T这4种字符) 的一种...

2020-02-21 22:56:37 141

原创 OJ系列-UVA1583(Digit Generator)java版

签到,今天是连续OJ系列的第五天最近有点茫然题目如果N加上N的各个数字之和得到M, 我们称N为M的生成元。例如,245的数字和是256(=245+2+4+5)。因此,245是256的生成元。毫不奇怪,有些数字没有任何生成器,有些数字有多个生成元。例如,216的生成元是198和207。你要写一个程序来找到给定整数的最小生成器。input你的程序是从标准输入中读取。输入由T个测试用例...

2020-02-21 00:12:26 160

原创 OJ系列-UVA340(Master-Mind Hints)java版

签到,今天是连续OJ系列的第四天!自我感觉这道题有点小难,不过不影响我AC。题目实现一个经典"猜数字"游戏。 给定答案序列和用户猜的序列, 统计有多少数字位置正确( A) , 有多少数字在两个序列都出现过但位置不对( B) 。输入包含多组数据。 每组输入第一行为序列长度n, 第二行是答案序列, 接下来是若干猜测序列。 猜测序列全0时该组数据结束。 n=0时输入结束。样例输入:4 1 ...

2020-02-19 22:49:54 108

原创 OJ系列-UVA401( Palindromes)java版

签到,今天是连续OJ系列的第三天感觉今天要超时了,在写这篇博客时,我心里有一万匹草泥马在奔腾,这么一道题居然耽搁了我这么多时间,搞得我今晚web还没有学,我TM…呜呜呜题目输入一个字符串, 判断它是否为回文串以及镜像串。 输入字符串保证不含数字0。 所谓回文串, 就是反转以后和原串相同, 如abba和madam。 所谓镜像串, 就是左右镜像之后和原串相同, 如2S和3AIAE。 注意, 并不...

2020-02-19 00:14:29 204 1

原创 OJ系列-UVA10082(WERTYU)java版

签到,今天是连续OJ系列的第二天!今天的重点是:细心!!!题目描述把手放在键盘上时, 稍不注意就会往右错一位。 这样, 输入Q会变成输入W, 输入J会变成输入K等。 键盘如图所示。输入一个错位后敲出的字符串( 所有字母均大写) , 输出打字员本来想打出的句子。 输入保证合法, 即一定是错位之后的字符串。 例如输入中不会出现大写字母A。样例输入:O S, GOMR YPFSU/样例输...

2020-02-17 21:48:58 269 1

原创 OJ系列-UVA272 (Tex Quotes)java版

今天开始每天一道OJ题:今天是第一天,我终于感觉到了OJ题的狡猾,虽然之前有刷过蓝桥练习系统发现给出的样例都是十分变态的,没想到OJ居然如此细节.题目描述:在TeX中, 左双引号是`` , 右双引号是’’。 输入一篇包含双引号的文章, 你的任务是把它转换成TeX的格式。样例输入: "To be or not to be," quoth the Bard, "that is the ...

2020-02-16 22:43:05 371

原创 令我眼前一亮的代码(二)如何得到一个字符串中每个字符出现的次数(java)

令我眼前一亮的代码(二)开局一句话:在(一)和(二)之间虽然隔了这么久,但是期间还是看到过很多有意思的小算法,小代码,很多都没有记录下来,或许觉得不够令我有记下来的冲动。这次遇到的是我在写赫夫曼编码的时候,给你一段字符串,如果得到这个字符串中相同的字符出现的次数,即就是该字母在赫夫曼树中的权值,后面用来构建赫夫曼树,得到赫夫曼编码。这并不是一个完整的程序,我只是觉得这个方法可能以后还会用到...

2020-02-04 21:06:14 206

原创 八皇后问题(java版)

八皇后问题是一个古老又充满趣味的问题,想搜到这里的,想必知道什么是八皇后问题,话不多说直接写题解吧,解法思路也直接写在代码中了,个人认为很好理解代码//解法:/*1.第一个皇后先放第一行第一列2.第二个皇后放在第二行第一列,然后判断是否OK,如果不OK,继续放在第二行,第三列,依次把所有列都放完,找到一个合适3.继续第三个皇后,还是第一列,第二列,....直到第8个皇后也能放在一个不冲...

2020-01-23 12:52:31 169

原创 假的哈夫曼C++版--学校考试第10题

问题:1、使用贪心算法解决如下问题问题:已知字符出现的频率,现要求根据字符出现的频率求出该字符对应的哈夫曼编码。举例:输入字符频率表 a b c d e 45 13 12 16 9输出:a:0 b:110 c:1110 d:10 e:1111这真的就是一个假的哈夫曼树,具体的东西我也不想写了,这就是个假的!!!它是将一个哈弗曼树的每一步排序都...

2019-12-25 19:45:02 130

原创 分治法-整数划分(java)

问题:将正整数n表示成一系列正整数之和n=n1+n2+…+nk(其中,n1>=n2>=…>=nk>=1,k>=1),求任意正整数n的划分数(n<10)。例如:6;5 + 1;4 + 2, 4 + 1 + 1;3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1;2 + 2 +2, 2 + 2 + 1 + 1, 2 + 1 + 1 + 1 +...

2019-12-14 16:32:08 864 2

原创 学校期末考试版-回溯法-旅行商问题

使用回溯法解决如下问题问题:某售货员要到若干城市去推销商品,已知各城市之间的路程。他要选定一条从驻地出发,经过每个城市一次,最后回到驻地的路线,使总的路程(或总旅费)最小。城市数量小于5个。用回溯法解决问题时,首先要考虑如下三个问题。(1)定义合适的解空间因为解空间的大小对搜索效率有很大的影响,因此使用回溯法首先要定义合适的解空间,确定解空间包括解的组织形式和显约束。解的组织形式:解的...

2019-12-13 22:58:47 821

原创 回溯法-详解旅行商问题(java)

回溯法-旅行商问题问题:某售货员要到若干城市去推销商品,已知各城市之间的路程。他要选定一条从驻地出发,经过每个城市一次,最后回到驻地的路线,使总的路程(或总旅费)最小。问题分析:现在我们从城市A出发,要去B,C,D,E共四个城市,按上面的顺序给城市编号1~5,每个城市用一个节点表示,可以直接到达的城市有连线,连线上的数字代表两个城市之间的路程(旅费),那么要去的城市地图就转换成了一个无向带...

2019-12-13 22:24:51 8204 3

原创 学校期末考试版-贪心算法(最优转载问题)java

问题:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为wi。最优装载问题要求在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。举例:假设c=20,w={5,6,7,8,9},则输出 5 6 7算法设计贪心算法:(1)贪心策略:首先要确定贪心策略,选择当前看上去最好的一个方案。例如,挑选苹果,如果你认为大的是最好的,那你每次都从苹果堆中拿一个最大的,作为局部最优解,...

2019-12-13 17:27:03 784 1

空空如也

空空如也

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

TA关注的人

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