蓝桥杯刷题冲刺 | 倒计时1天

作者:指针不指南吗
专栏:蓝桥杯倒计时冲刺

🐾蓝桥杯加油,大家一定可以🐾

文章目录

我是菜菜,最近容易我犯的错误总结 + 一些tips
各位蓝桥杯加油加油

    • 当输入输出数据不超过 1e6 时,scanf printfcin cout 是没有差距的;
    • 超过这个数据范围时,就是用 scanf printf
  1. 多次调式,自己手写几组数据,用代码测试一下

    输入格式,和输出格式,逐一对照题目

    用 int 还是 char 读入多组输出结果 是用空格开始换行 ,大小写是否正确

    • dev 先开 10个 窗口,把框架打上去,做好准备,可以先 默写一个板子,试试手感
    • 带不同颜色的笔,可能很有用
  2. 自己设置样例,把所有的临界情况,都写出来;尽可能多的,想想出题人出怎么卡你

    • 截断的话,强制转化,double 类型
    • 加 0.5 :3.5和3.6、3.4 +0.5 再强制转化,成int 截断
    • 四舍五看单双 x*100%10判断它
    • printf 直接包含 四舍五入
  3. 注意由负数和0,1,2等特殊情况,把这几个值作为样例,带入到里面去调试

  4. 并查集的板子,太细了,仔细看看

  5. 考虑边界条件,是否可以取到,是否需要多取一个

  6. 取最中间两个数的,表示方法记住:[(n+1)/2] [(n+2)/2]

    认真审题!!注意到每一句话,太重要了

10.数据类型错了 应该是 double , 我一直写的 int , 最后才发现

  1. 一定要确保数据类型使用正确
  2. 巧用 word 和 excel ,来解答
  3. 数据范围,一定要明确,输入范围,不代表结果的范围,大坑
  4. 当 运算结果不正确的时候 Debug , 可以用一个比较小的数,从头到尾走一遍,在纸上写一写

走的时候,不要看 大致思路 , 出错往往是那些不起眼的小地方 ,每一个关键字 ,都 走一遍

  1. 先把逻辑再纸上写一遍,再开始写代码

  2. 写代码的时候,逻辑很乱,条理不清晰,提前没有写注释,后面修改的时候,就很懵

    动手模拟一下,往往会事半功倍

    此外,数据开的范围要足够大

  3. 1B(Byte 字节)=8bit,
    1KB (Kilobyte 千字节)=1024B,
    1MB (Megabyte 兆字节 简称“兆”)=1024KB,
    1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,
    1TB (Trillionbyte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方)

  4. sum=-1e18; //让 sum 尽可能的小,因为输入的数中含有负数

  5. 读题,理解他深层次的要求,明确要求什么

    属于一个规律题,编号可以 推出来

  6. 发散性思维,在做蓝桥杯的时候,遇到这种 数 的题,先静下心来,找找规律

  7. 定义变量之前,先想清楚,它的数据类型和范围

  8. 有向无环图才会有拓扑序列,所以有向无环图又称为拓扑图,无向图没有,环也没有

    入度:有几条边进入某个顶点;出度:有几条边从某个顶点出去

    拓扑练习

  9. 注意最后的输出格式,别最后好不容易算对了,结果格式错了,太冤了

  10. 原来还可以使用结构体,确实简单了不少

    sort函数的重载

  11. ^异或两个位相同为0,相异为1。
    ~取反
  12. img

  13. 数字可以使用 string 字符串,来储存比较各个数位

  14. 双向和自环,注意

  15. while(a[m]==0)  //去掉前导0,优化
    {
    	m++;
    }
    
  16. 对于题中给的数据范围,要分情况分析,尤其是含有负数、0、正数的情况

  17. 遇到捆绑问题+排序问题的时候,使用结构体处理数据

    两组数据的时候,可以使用双重数组,里面有排序的话 ,拒绝数组

  18. 还有就是数据很大,一律不用使用 int ,省的后期还得改

  19. 0x7fffffffffffffffL; // long long的最大

  20. dfs 递归回溯

  21. bfs 不断扩展 直到找到结果

  22. 全排列

  23. 坐标表示,(1,1)在左下角

    for(int i=n; i>=1; i--)
    {
        for(int j=1; j<=m; j++)
        {
            s[i][j]=getchar();
            if (s[i][j]=='.')
                cnt++;//统计有多少个空
        }
        getchar();
    }
    
  24. dist、h的初始化

  25. vector 二维数组:

    • vector<int> q[m] 表示可以往 q[1],q[2] 里面放一个数组,

    q[2][3] 表示 q[2]这个数组的 第 3个元素,根据上面题中理解更透彻

    而且还可以 使用 q[2].size() 就很方便

  26. 注意谁除谁,觉得结果很离谱,就转化一下思维,从另一个角度来理解题

  27. 动手在纸上模拟,思路就会很清晰,千万别硬想

  28. 仔细阅读输出提示,-1 的情况

  29. 在浮点数精度问题上,和在某范围内查找某个数的时候特别是大范围就使用二分算法

  30. 1.reverse(str.begin(),str.end()) 反转字符串
     	 
    2.reverse(vector.begin(),vector.end()) 反转向量
     
    3.reverse(a,a+strlen(a)) 反转数组
    
  31. 找规律,发散思维,很有可能有递归,看看前后几个数之间的关系

    递归函数,可能会超时,考试的时候,就直接使用 数组来代替函数

  32. 使用 switch 执行不同的函数

47.dfs 回溯+深搜+恢复现场
考试的时候,不会的题,一定要把样例写上去,骗分!

  1. s=to_string(n):数字转为字符串
  2. s=substr(start,length):复制子字符串,从指定位置开始并具有指定的长度,substr(start , length)
  3. n=stoi(s):字符串转为数字,stoi(字符串 , 起始位置 , n进制)
  • stoi(字符串,起始位置,n2~32进制),将n进制的字符串转化为十进制
  1. 截取全部字串

    for (int i = 0; i < str.size(); i ++) 
    for (int j = 1; j <= str.size() - i; j ++)  //注意这里的细节  1、!、= -i
     string s = str.substr(i , j);  
    
  2. 判断素数

    bool prime_number(int num)  //判断素数 方法一
    {
    	if (num <= 3)  return num > 1;
    	if (num % 2 == 0)  return false;
    	if (num %6 != 1 && num % 6 != 5)  return false;
    	for (int i = 3; i < sqrt(num); i += 2)
    		if (num % i == 0)  return false;
    	return true;
    }
    
  3. 输出技巧:使用 flag 标记第一个数,符号带在数的前面(说的有点抽象,结合上面这个题理解)

使用 多个 if else 来判断条件,是否输出相对应的符号

  1. unsigned int0~4294967295 (10位数,4e9)
    int-2147483648~2147483647 (10位数,2e9 2^{31}-1)
    long long-9223372036854775808~9223372036854775807 (19位数, 9e18 ) 2^{63}-1
    unsigned long long0~18446744073709551615 (20位数,1e19) 2^{64} - 1
  2. m是 1 0 5 10^5 105 级别的话就是稠密图,m是n级别的就是稀疏图

    ps数组元素个数不能太多,一开始用的 1e5 ,编译过不去

  3. 进制转化问题:

    1. 填空题直接借助于计算器
    2. 编程,注意累乘的进位的顺序,别整反了;使用字符串来储存数字
    3. '0’是字符0的意思,他所对应的ASCII码为48;而0是数字0,ASCII中的0
  4. ASCII 转换公式

    0-9A-Za-z
    ASCII码值48-5765-9097-122
    • ASCII码值大小:数字<大写字母<小写字母
    • 以上三种ASCII码因为都是连续的,所以都可以加相应的数从而得到之后的ASCII码值
    • 小写转大写:小写字母 - ‘a’ + ‘A’
    • 大写转小写:大写字母 - ‘A’ + ‘a’
    • 小写转数字:小写字母 - ‘a’ + ‘0’
    1. 原值减去 原对应类型的第一个值 (置零);
    2. 然后加上 所求类型的第一个值的ASCII
  5. 从13!开始就开始爆int;

    从21!开始就开始爆 long long;

    高精度乘法,把小的int存

  6. long double 输出用%Lf

  7. 绝对值 整数时,使用 abs;浮点数,使用 fabs

  8. 使用万能头的话,不要使用 y1

  9. 三角形面积

    //海伦公式 long double p=(a+b+c)/2;
    S=sqrt(p*(p-a)*(p-b)*(p-c));   //背过printf("%.2Lf\n",S);  //这里,输出 Lf
    
S=fabs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)*1.0/2;  //这里,abs的使用,面积没有负的,坐标法
  1. 函数来改变某个变量,记得使用 引用

  2. 使用邻接表的时候 h 初始化 + add ,初始化别丢

  3. 什么问题可以运用二分搜索算法技巧?

    1. 首先,你要从题目中抽象出一个自变量 x,一个关于 x 的函数 f(x),以及一个目标值 target

    2. 同时,x, f(x), target 还要满足以下条件:

      f(x) 必须是在 x 上的单调函数(单调增单调减都可以)

      题目是让你计算满足约束条件 f(x) == target 时的x的值。

  4. 利用 map 键值对来存 每一数在数组中出现的次数,然后就可以直接使用了

    开 long long 不要犹豫

  5.  while(n)
        {
            ans++;
            n&=(n-1);  //这里是计算 n 二进制中1的个数
        } 
    
  6. 直接不断地乘2,错以为每个偶数都可以包含在内,4*2=8,6就没有包含进去;

  7. 骗分,yes or no 二选一,运气好的话,拿一半多得分

  8. 学会剪枝,特殊情况,使用break 来缩短时间

  9. 编号坐标注意是从 0 开始还是 1 开始

  10. 双指针的一般思路就是,先想出来暴力朴素算法,然后使用双指针优化

各位,蓝桥杯加油!!

Alt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/7125.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】初识Vue(一)

&#x1f697;Vue学习扬帆起航~ &#x1f6a9;本文已收录至专栏&#xff1a;Vue框架 &#x1f44d;由于Vue2与Vue3存在许多相似之处&#xff0c;先开始Vue2学习再进阶到Vue3 我们知道技术的兴起与流行一般都是为了帮助我们解决一类问题使得我们开发体验更加舒适&#xff0c;那么…

C++之多态

文章目录前言一、多态的概念二、多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写&#xff08;覆盖&#xff09;4.虚函数重写的两个例外4.C11中的override和final关键字三、重载、重定义&#xff08;隐藏&#xff09;、重写&#xff08;覆盖&#xff09;的区分四、抽象…

【美赛】2023年ICM问题Z:奥运会的未来(思路、代码)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【面试】MySQL面试题

文章目录数据库基础知识为什么要使用数据库什么是SQL&#xff1f;什么是MySQL?MySql, Oracle&#xff0c;Sql Service的区别数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式&#xff1f;分别有什么区别&#xff1f;数据库经常使用的函数数据类…

C++设置动态库的版本号(软链接)

1,动态库版本命名规则 假设有一个动态库&#xff1a;libfooSdk.so.1.1.0&#xff0c;其对应的三个名称如下。 realname&#xff1a;libfooSdk.so.1.1.0 soname&#xff1a;libfooSdk.so.1 linkname&#xff1a;libfooSdk.solinux的动态库的命名格式是libfooSdk.so.x.y.z 版本…

大数据概述及其软件生态

一、大数据的诞生 &#xff08;1&#xff09;当全球互联网逐步建成&#xff08;2000年左右&#xff09;&#xff0c;各大企业或政府单位拥有了海量的数据亟待处理。 &#xff08;2&#xff09; 基于这个前提逐步诞生了以分布式的形式&#xff08;即多台服务器集群&#xff09;…

PCB生产工艺流程三:生产PCB的内层线路有哪7步

PCB生产工艺流程三&#xff1a;生产PCB的内层线路有哪7步 在我们的PCB生产工艺流程的第一步就是内层线路&#xff0c;那么它的流程又有哪些步骤呢&#xff1f;接下来我们就以内层线路的流程为主题&#xff0c;进行详细的分析。 由半固化片和铜箔压合而成&#xff0c;用于…

Vue|计算属性

1. 计算属性1.1 差值语法1.2 methods1.3 计算属性1. 计算属性 1.1 差值语法 开始前分别在项目目录创建文件夹及页面如下 需求1&#xff1a;在两个文本框中分别输入姓和名的同时需要在下方将数据进行拼接组装&#xff0c;效果如下图 如果用传统的方式来实现的话&#xff0c;需要…

投屏软件:ApowerMirror Crack

一个软件&#xff0c;两个系统 ApowerMirror是一个跨平台的屏幕镜像应用程序&#xff0c;可用于iOS和Android设备&#xff0c;与Windows和Mac兼容。对于运行支持 Chromecast 的 Android 5.0 或更高版本的手机&#xff0c;用户可以使用此程序镜像屏幕。而对于支持AirPlay的iOS设…

bfs与dfs详解(经典例题 + 模板c-代码)

文章首发于&#xff1a;My Blog 欢迎大佬们前来逛逛 文章目录模板解析dfsbfs1562. 微博转发3502. 不同路径数165. 小猫爬山模板解析 DFS&#xff08;深度优先搜索&#xff09;和BFS&#xff08;广度优先搜索&#xff09;是图论中两个重要的算法。 dfs 其中DFS是一种用于遍历…

spring源码之扫描前设置

扫描前设置 &#x1f6f9;源码源码说明总结启动一个springboot项目源码 org.springframework.context.annotation.ComponentScanAnnotationParser#parse public Set<BeanDefinitionHolder> parse(AnnotationAttributes componentScan, String declaringClass) {// 创建C…

清明-微信小程序

# 云开发接入 初始化云开发 环境保密

深度学习部署(十三): CUDA RunTime API thread_layout线程布局

1. 知识点 在.vscode/settings.json中配置"*.cu": "cuda-cpp"可以实现对cuda的语法解析 layout是设置核函数执行的线程数&#xff0c;要明白最大值、block最大线程数、warpsize取值 maxGridSize对应gridDim的取值最大值maxThreadsDim对应blockDim的取值最…

酷炫的青蛇探针serverMmon

本文软件由网友 114514 推荐&#xff1b; 什么是 serverMmon &#xff1f; serverMmon (青蛇探针)是 nodeJs 开发的一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针。 主要功能介绍&#xff1a; 全球服务器分布世界地图服务器&#xff08;控制端&#xff09; ping…

简单3招教你设置电脑时间

案例&#xff1a;电脑时间怎么设置&#xff1f; 【我使用电脑时&#xff0c;电脑显示的时间一直不对&#xff0c;这导致我非常不方便&#xff0c;想问下大家平常使用电脑时有什么设置电脑时间比较简单的方法吗&#xff1f;】 电脑的时间设置很重要&#xff0c;不仅可以保证电…

Java单例模式、阻塞队列、定时器、线程池

目录1. 单例模式1.1 饿汉模式实现单例1.2 懒汉模式实现单例1.2.1 加锁实现懒汉模式线程安全1.2.2 volatile实现懒汉模式线程安全1.3 饿汉模式和懒汉模式小结&#xff08;面试题&#xff09;2. 阻塞队列2.1 单线程下阻塞队列2.2 多线程下阻塞队列——生产者消费者模型2.3 模拟写…

【蓝桥集训18】二分图(2 / 2)

二分图定义&#xff1a;将所有点分成两个集合&#xff0c;使得所有边只出现在集合之间&#xff0c;就是二分图 目录 860. 染色法判定二分图 1、dfs 2、bfs 861. 二分图的最大匹配 - 匈牙利算法ntr算法 860. 染色法判定二分图 活动 - AcWing 1、dfs 思路&#xff1a; 对每…

白农:Imagination将继续致力于推进车规半导体IP技术创新和应用

4月2日Imagination中国董事长白农在中国电动汽车百人论坛上发表演讲&#xff0c;探讨了车规半导体核心IP技术如何推动汽车智能化发展&#xff0c;并接受了媒体采访。本次论坛上&#xff0c;他强调了IP技术在汽车产业链中日益重要的地位和供应商的位置前移。类比手机行业的发展&…

树、森林、二叉树:相互之间的转换

你好&#xff0c;我是王健伟。 前面我们讲过了各种二叉树&#xff0c;这方面的知识已经够多的了&#xff0c;本节就来讲一讲更通用的概念&#xff1a;树、森林以及与二叉树之间的转换问题。 树的存储结构 前面我们学习了树形结构的基本概念&#xff0c;在满足这个概念的前提…

python 包、模块学习总结

、模块基础 1、基本概念 模块是最高级别的程序组织单元&#xff0c;它将程序代码和数据封装起来以便重用。从实际角度来看&#xff0c;模块往往对应于python程序文件&#xff08;或是用外部语言如C、Java或C#编写而成的扩展&#xff09;。每一个文件都是一个模块&#xff0c;并…