- 博客(52)
- 收藏
- 关注
原创 【BFS双队列实现分层处理(求最短路径长度)】蓝桥杯 青蛙跳杯子
如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。本题的任务就是已知初始局面,询问至少需要几步,才能跳成另一个目标局面。2. 隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。3. 隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。输出要求为一个整数,表示至少需要多少步的青蛙跳。输入为2行,2个串,表示初始局面和目标局面。1. 跳到相邻的空杯子里。输入的串的长度不超过15。
2025-03-19 11:11:28
481
原创 【DFS全排列+判断子序列】蓝桥杯算法提高-3000米排名预测
3000米长跑时,围观党们兴高采烈地预测着最后的排名。因为他们来自不同的班,对所有运动员不一定都了解,于是他们分别对自己了解的一些运动员的实力作出了评估,即对部分运动员做了相对排名的预测,并且告诉了可怜留守的班长。因为无聊,于是他们就组团去打Dota去了。比赛结束后他们向班长询问最后的排名,但班长不记得了,只记得他们中哪些人的预测是正确的,哪些人的预测是错误的。他们想知道比赛的排名可能是什么。
2025-03-18 11:40:04
631
原创 【DP完全背包变形+DFS】[NOIP1999 提高组] 邮票面值设计
给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1~MAX之间的每一个邮资值都能得到。 例如,N=3,K=2,如果面值分别为1分、4分,则在1分~6分之间的每一个邮资值都能得到(当然还有8分、9分和12分);如果面值分别为1分、3分,则在1分~7分之间的每一个邮资值都能得到。可以验证当N=3,K=2时,7分就是可以得到的连续的邮资最大值,所以MAX=7,面值分别为1分、3分。
2025-03-17 23:16:42
721
原创 【FLOYD+并查集】蓝桥杯算法提高 Degrees of Separation
输入包含多组描述关系网络的数据,对于每组数据,第一行有两个数P,表示网络中人的数目,和R,关系的对数。每个关系用两个字符串表示,代表网络中有关系的两个人的名字。一个关系网络就是一个图,两个人之间的分离度就是两个人之间路径的长度 这是一个不带权图 或者理解为权值等于1也行。题目要求的就是求一个图中 任意两个人的最短路径的最大值,前提是这个图是连通图。对于任意两个人,他们的分离度是联系两个人需要经过的最小的关系数。对于一个关系网络,最大的分离度是网络中任意两人的分离度的最大值。按照样例输出中的格式输出。
2025-03-17 12:22:26
1145
原创 【字符串】用getline和stringstream读取一个字符串并按照空格分割
比如我们遇到这样的题目,两个人名为一对关系,会给出任意对关系。比如:Ashok Kiyoshi Ursala Chun Ursala Kiyoshi Kiyoshi Chun由于我们不知道到底有几个人名 我们无法事先定义变量,然后根据具体的循环一个一个读入变量值。我们只能把这一整句话用一个字符串string存储 但是cin>>string无法读入空格 这句话是包含空格的,所以我们要用。
2025-03-17 11:17:46
323
原创 【动态规划+数论】包子凑数|完全背包变形
每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。比如一共有3种蒸笼,分别能放4、5和6个包子。如果凑不出的数目有无限多个,输出INF。凑不出的数目包括:1, 2, 3, 6, 7, 11。小明想知道一共有多少种数目是包子大叔凑不出来的。
2025-03-14 12:37:45
960
原创 【数论】辗转相除法
辗转相除法,是求最大公约数的一种经典算法,辗转相除法之所以有效是因为其基于一个核心原理,即用数学的描述方法来写,就是: 设整数x为a和b的因数,则应有a=mx,b=nx。所以a mod b=a-qb=(m-qn)x,即x是b和a mod b的公因数;反之,如果设x为b和a mod b的因数,则因为a=qb+a mod b,所以x是a和b的公因数。综上所述,a和b的公因数集等于b和a mod b的公因数集,所以有gcd(a,b)=gcd(b,a mod b),这就证明了该核心原理。
2025-03-14 12:37:04
326
原创 【数论】A B互质 最大不能表示出来的数是 A*B-A-B
当正整数A与B互质时,用A和B表示不出的最大数为A*B-A-B。证明:两个互质的数A、B(无论是否相差为1),最小公倍数为AB。设a(n)为使式子a(n)B mod A = n成立的最小正整数,其中n从1到A-1。可以证明,0<a(n)<A。显然a(n)不可能为A的倍数。如果a(n)>A,则有a(n)B mod A = (a(n)-A)B mod A = n,:即a(n)-A也是使以上式子成立的正整数,但显然比a(n)小,因此不是最小正整数。所以a(n)<A。令n从1到A-1,由于所有的a(n)都小于A且显
2025-03-14 12:18:26
269
原创 【动态规划+数论】波动数列|完全背包变形
观察这个数列:这个数列中后一项总是比前一项增加2或者减少3。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢?
2025-03-14 10:50:11
539
原创 【动态规划】对局匹配 (分组线性DP)
小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, ... AN。小明想了解最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来(任意两名用户积分差不等于K)?
2025-03-13 22:01:53
878
原创 Java Objects工具类的学习
当我们遇到一些类对象是null空指针时,我们代码又要调用类方法,就会出现错误,此时我们一般的解决方法就是用if-else结构判断是不是空指针,然而我们用Objects工具类解决这个问题更为简单。5.如果重写了 比较属性值 所以这边a 和 c的属性值一样 但地址值不一样 比较的结果依旧是false。1.equals方法的底层会判断里面的第一个类是否有null 如果有一个null 直接返回false。3.此时第一个类a是persons类型,所以最终还是会调用persons中的equals方法。
2022-11-14 18:27:30
679
原创 Java Object 父类的学习 及Object的clone方法的浅谈深拷贝和浅拷贝
浅拷贝:不管对象内部的树形是基本数据类型还是引用数据类型,全部拷贝过来、深拷贝:基本数据类型拷贝过来 字符串服用 引用数据类型重新创建Object的克隆是浅克隆。
2022-11-12 18:55:59
534
原创 Java-API-Runtime类的学习
注: 要用Runtime类自带的静态方法 Runtime.getRuntime() 获取当前系统的运行环境对象 因为JVM只有一个运行环境。二、方法的使用代码演示。
2022-11-08 20:16:48
317
原创 Java-API-System类的学习 常用方法的介绍
java 通常以1970年1月1日为时间起点,许多计算都以这个时间开始。4.因为引用数据类型copy的实际上是地址值 所以源数组发生改变 目的地数组也发生改变。2.在拷贝的时候要考虑数组的长度,如果超出范围也会报错。那么两者的类型必须保持一致 否则会报错。1.如果数组源数组和目的地数组都是。3.如果数组源数组和目的地数组都是。那么子类类型也可以赋值给父类类型。
2022-11-07 23:09:33
183
原创 最长公共子序列【LCS】(动态规划)
LIS(Longest Increasing Subsequence)最长上升子序列一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, ..
2021-11-05 20:13:49
135
原创 最长上升子序列【LIS】<动态规划>
【题目描述】给定N个数,求这N个数的最长上升子序列的长度。【样例输入】72 5 3 4 1 7 6【样例输出】4代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define Max 1010//最长上升序列int a[Max];int maxlen[Max];int
2021-11-05 19:11:51
104
原创 数字三角形<动态规划>(利用递推 ) 超简洁的做法
问题描述问题:给定一个由n行数字组成的数字三角形,如下图所示:试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大(每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数)。输入格式: 第一行是数字三角形的行数,接下来 n 行是数字三角形中的数字。输出格式: 最大总和(整数)样例输入573 88 1 02 7 4 44 5 2 6 5样例输出30#include<iostream>#include<cstd.
2021-11-05 18:55:05
300
原创 快速排序<分治>
#include<iostream>using namespace std;//快速排序 复杂度 O(n*logn) //但只指一般条件(运气好的时候) 就是k a[0]要在数组中比较中间的位置//运气不好的时候 就是一个数组比较有序的时候 复杂度为n*n//但我们可以手动的随机打乱 但也占复杂度void swap(int &a,int &b)//交换数值的函数{ int tmp=a; a=b; b=tmp; return ;}v.
2021-11-04 21:22:28
91
原创 排序法·归并排序
#include<iostream>using namespace std;int a[10]= {13,27,19,2,8,12,2,8,30,39};int b[10];//归并排序void Merge(int a[],int s,int m,int e,int tmp[]){ int pb=0; int p1=s,p2=m+1; //拆分成两个数组进行归并 while(p1<=m&&p2<=e) { .
2021-11-04 14:08:08
92
原创 表达式求和<递归>
上代码!#include <cstdio>#include <cstring>#include<iostream>using namespace std;int factor_value();int term_value();int expression_value();int main(){ cout<<expression_value()<<endl; return 0;}int expression_
2021-11-04 13:46:38
257
原创 POJ1222熄灯问题<北大OJ>(位运算)
AC代码如下:#include <cstdio>#include <cstring>#include<iostream>using namespace std;char oriLights[5];char light[5];char result[5];int getbit(char c,int i)//取出字节{ return(c>>i)&1;}void setbit(char & c,int...
2021-11-03 23:14:49
264
1
原创 洛谷P1024[NOIP2001]一元三次方程(二分)
AC代码如下:#include<bits/stdc++.h>using namespace std;//一元三次方程double a,b,c,d;//全局变量 方便传进jisuan函数使用double jisuan(double x){ return a*x*x*x+b*x*x+c*x+d;}int main(){ cin>>a>>b>>c>>d; int sum; ...
2021-10-30 11:24:22
217
原创 洛谷P2678[NOIP2015]跳石头(二分算法)
题目:AC通过图如下简短的AC代码如下:#include<iostream>#include<cstdio>using namespace std;int main(){ int l, n, m; cin >> l >> n >> m; int arr[50001]; int now, left, right, mid; left = 0; right = l; //给2位置变量初始化数...
2021-10-30 10:24:33
1092
原创 DHU.OJ乒乓球<字符串>
AC代码:#include<iostream>#include<cstdio>using namespace std;int a[65000];void tongji(int x);int len;int main(){ char c; while(cin>>c) { switch (c) { case 'W': a[len++] = ...
2021-10-29 11:35:40
273
原创 不同单词统计<字符串>
AC代码:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>#include<queue>#include<vector>using namespace std;int main(){ char a[105]; gets(a); int sum=0; fo...
2021-10-28 23:09:10
102
原创 字符串编辑<字符串>
AC代码如下:#include<bits/stdc++.h>using namespace std;int main(){ // freopen("input.txt", "r", stdin); string str; getline(cin, str); char s, a; cin >> s >> a; int length = str.size(); int i, j,...
2021-10-28 23:07:14
233
原创 洗牌<字符串>
#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>#include<queue>#include<vector>using namespace std;int main(){ string input; int poker[54]; int n=0...
2021-10-28 00:13:08
158
原创 表达式求值<字符串>
AC代码:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>using namespace std;int main(){ char a[200]; while(gets(a)) { int sum=0; int flag=0; ...
2021-10-26 23:44:32
120
原创 字符串统计<字符串>
AC代码:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>using namespace std;int judge(char tmp[],char a[]);int main(){ int l; char a[100]; char b[100]; cin>>l; getchar(); g...
2021-10-26 22:19:45
122
原创 My brother‘s homework<字符串>
题目:AC代码 如下#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>using namespace std;int main(){ int i = 0, j, count = 0; int a[100], b[100], c[100]; char d[100]; while(scanf("%d.
2021-10-26 22:18:17
91
原创 字符串压缩<字符串>
AC代码如下!#include<cstdio>#include<string>#include<iostream>#include<cmath>using namespace std;string yasuo(string str);int main(){ string str; for(;cin>>str;){ for(int i=0;i<str.length();i++) ...
2021-10-25 16:19:29
91
原创 移动距离<二维数组>
AC代码#include<cstdio>#include<cstring>#include<iostream>#include <cmath>using namespace std;int w, m, n;int main(){ scanf("%d %d %d", &w, &m, &n); m--;//减1后确保算出来的行数 准确 否则当w等于6 m等于6 m1等于1但其实m在第...
2021-10-25 15:25:44
147
原创 【洛谷】P173】[noi1999]生日蛋糕
AC代码如下#include<cstdio>#include<cstring>#include<iostream>#include<cmath>using namespace std;int r[30],h[30],minn=211310532,n,m;void dfs(int x,int y,int k,int z)//步骤 V 表面积 层数{ if(y<0) return;//体积已经大于n 剪枝 if(x...
2021-10-24 22:13:22
188
原创 【洛谷P1219】八皇后
题目描述一个如下的6 \times 66×6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2\ 4\ 6\ 1\ 3\ 5246135来描述,第ii个数字表示在第ii行的相应位置有一个棋子,如下:行号1\ 2\ 3\ 4\ 5\ 6123456列号2\ 4\ 6\ 1\ 3\ 5246135这只是棋子放置的一个解。请编一个程序找出所有棋...
2021-10-24 12:05:42
105
原创 <洛谷>P1378 油滴拓展
题目描述在一个长方形框子里,最多有NN个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这NN个点上放置油滴,才能使放置完毕后所有油滴占据的总体积最大呢?(不同的油滴不会相互融合)注:圆的面积公式V = \pi r^2V=πr2,其中rr为圆的半径。输入格式第一行,一个整数NN。第二行,四个整数x, y, x', y'x,y,x′,y′,表示长方形边...
2021-10-23 17:09:36
292
原创 棋盘多项式·八皇后改八车<递归>
问题描述 : 八皇后问题是在棋盘上放皇后,互相不攻击,求方案。变换一下棋子,还可以有八车问题,八马问题,八兵问题,八王问题,注意别念反。在这道题里,棋子换成车,同时棋盘也得换,确切说,是进行一些改造。比如现在有一张n*n的棋盘,我们在一些格子上抠几个洞,这些洞自然不能放棋子了,会漏下去的。另外,一个车本来能攻击和它的同行同列。现在,你想想,在攻击的过程中如果踩到一个洞,便会自取灭亡。故,车的攻击范围止于洞。 此题,给你棋盘的规模n,以及挖洞情况,求放k个车的方案数(k从0到最多可放车数)输入
2021-10-23 09:59:54
655
原创 八皇后·改<递归>
问题描述 :规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。输入说明 :一个8*8的棋盘。数据规模和约定 棋盘上的数字范围0~99输出说明 :所能得到的最大数字和AC代码如下#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#inc..
2021-10-23 09:52:46
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人