顺其自然,无为而治~
蓝桥杯考前鲤鱼锦囊(第一期)

冲刺蓝桥杯省一模板大全来啦
~
蓝桥杯4月8号明天就要开始了
~
距离蓝桥杯省赛倒数最后1天

还没背熟模板的伙伴们背起来

真题千千万万遍,蓝桥省一自然现! 
日更3000里,蓝桥眷顾你 
暴力出奇迹,打表过样例 
祝大家4月8号蓝桥杯上岸
~
不清楚蓝桥杯考什么的点点下方
考点秘籍
蓝桥杯竞赛干货 
算法竞赛字符串常用操作总结!!!
往期回顾
蓝桥杯上岸每日N题第一期(一)!!!
蓝桥杯上岸每日N题第一期(二)!!!
蓝桥杯上岸每日N题第一期(三)!!!
蓝桥杯上岸每日N题第二期(一)!!!
蓝桥杯上岸每日N题第三期(一)!!!
蓝桥杯上岸每日N题第四期(最少刷题数)!!!
蓝桥杯上岸每日N题第五期(山)!!!
蓝桥杯上岸每日N题第六期(求阶乘)!!!
蓝桥杯上岸每日N题第七期(小猫爬山)!!!
蓝桥杯上岸每日N题第八期(全球变暖)!!!
蓝桥杯上岸必刷专题
蓝桥杯上岸必刷!!!(日期专题+保姆级教学)
蓝桥杯上岸必刷!!!(字符串专题)
蓝桥杯上岸必刷!!!(模拟/枚举专题)
蓝桥杯上岸必刷!!!(进制、数位专题)
想背纯享模版的伙伴们点点下方
蓝桥杯省一你一定不能错过的模板大全(第一期)
蓝桥杯省一你一定不能错过的模板大全(第二期)
蓝桥杯省一你一定不能错过的模板大全(第三期)
想背注释模版的伙伴们点点下方
蓝桥杯必背第一期
蓝桥杯必背第二期
蓝桥杯上岸必背!!! (第三期 DP)
蓝桥杯上岸必背!!!(第四期DFS)
蓝桥杯上岸必背!!!(第五期BFS)
蓝桥杯上岸必背!!!(第六期树与图的遍历)
蓝桥杯上岸必背!!!(第七期最短路算法)
蓝桥杯上岸每日N题第七期(小猫爬山)!!!
想看JavaB组填空题的伙伴们点点下方 
填空题
前言
蓝桥杯明天就要开始啦~还没刷题的同学跟我一起来刷历年真题,考前鲤鱼锦囊来啦 
老爷保佑

喜欢的小伙伴可以关注我,关注寸铁,我们一起上岸4.8蓝桥杯!!!
鲤鱼跃龙门,蓝桥必上岸!!! 
小技巧
这题采用格式化输出即printf
需要注意的是不足2位数即补0:%02d
取出数字的每一位:
从个位开始取,依次取出每一位数。
while(temp!=0){
int a=temp%10;
temp/=10;
}
统计某个数出现的次数:
cnt[i]++;
统计某段区间出现的次数:
前缀和:
cnt[i]-cnt[j-1];
PII/Pair
注意:java中无自带的Pair,需要我们自己手写PII
class PII{
int x;
int y;
public PII(int x,int y)
{
this.x=x;
this.y=y;
}
}
PII q[]=new PII[N];
这样就可以把元素放在q队列中:
q[++tt]=new PII(x,y);
判断闰年和平年:
(1)不能被100整除并且能被4整除
(2)能被400整除
if(year%100!=0&&year%4==0||year%4==0)
用于判断年、月、日是否为合法日期。
跟我一起背吧!!!
首先,我们先背诵一下日期。
平年:2月是28号
闰年:2月是29号
static int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
接着,这里需要注意的是参数可以变化 date-->year,month,day
static int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
public static boolean check(int date){
int year=date/10000;
int month=date/1000%100;
int day=date%100;
先判断月份是否合法
if(month==0)return false;
if(day==0||month!=2&&day>d[month])return false;
if(month==2){
int leap=0;
if(year%100!=0&&year%4==0||year%400==0)leap=1;
if(day>28+leap)return false;
}
return true;
}
回文字符串:
12344321
如何实现翻转效果
如果我们想翻转前四位1234
则:
for(int i=0;i<4;i++)
{
date=date*10+date%10;
date/=10;
}
对负数取模技巧:
对于负数的x取模后还是为负数
所以需要先对y取模再加上y再对y取模
public static int mod(int x,int y) {
return ((x%y)+y)%y;
}
快速幂qmi()
public static long qmi(int a,int b,int p){
long ans=1;
while(b>0){
if((b&1)==1)ans=ans*a%p;
b>>1;
a=(int)((long)a*a%p);
}
return ans;
}
求最大公约数 gcd()
辗转相除法
public static int gcd(int a,int b){
while(b!=0){
int c=a%b;
a=b;
b=c;
}
return a;
}
秦九韶算法
如何将字符串转换成数字?
String str=“2019”;
char s[]=str.toCharArray();
int x=0;
for(int i=0;i<s.length;i++){
x=x*10+str[i]-'0';
}
比较最大值/最小值
INF:表示一个无穷大的数,通常是0x3f3f3f3f。
或者 Max_IntegerValue
最小值:初始res=INF
res=Math.min(res,ans)
最小值:初始res=-INF
res=Math.max(res,ans)
容器
Queue
Queue[HTML_REMOVED]q=new LinkedList<>();
pair为数据类型可以自定义,Queue通过LinkedList接口实现。
List
List[HTML_REMOVED]path=new ArrayList<>();
pair为数据类型可以自定义,通过ArrsyList实现。
Map
Map[HTML_REMOVED]map=new HashMap<>();
map.put(sum,new int[]{c,d});
存的是一个数对{c,d}
map.containsKey(sum)
用于判断sum是否出现在map中
由于我们存的是结构体,在调用get方法时,每个数对对应一个键值。
get到键值后,再访问该键值下数对的数字。
调用数对中c、d的语句:
c–>map.get(n-sum)[0]
d–>map.get(n-sum)[1]
Arrays.copyOf
a[]=new *[];
b[]=new int[];
Arrays.copyOf(a,b);
//复制两个数组:前一个为任意类型,后一个必须为整形。
//可复制各种类型像:boolean、int等等
前提是数组类型必须一 一对应:
如a
是int型,则b
也必须为int型。
a
是boolean型,则b
也必须为boolean型。
字符数字转换
(char)(‘A’+数字)转换成字符
(int)(‘Z’)转换成数字
(int)(‘Z’-‘A’)转换成数字
必读补充资源
大家一定要去look
Java使用:http://t.csdn.cn/ATCD4
填空题:http://t.csdn.cn/PnWq0
混分:http://t.csdn.cn/BXKOy
后记
边复习,边更新,会把相关的总结放在这里。
大家每次看之前记得刷新一下 。
祝大家蓝桥杯上岸~
放稳心态,积极对待!