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

news/2024/11/29 12:37:28/

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

🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾

文章目录

  • 1.数的三次方根
  • 2.模拟散列表
  • 2.字符串哈希

1.数的三次方根

  • 题目

    链接: 790. 数的三次方根 - AcWing题库

    给定一个浮点数 n,求它的三次方根。

    输入格式

    共一行,包含一个浮点数 n。

    输出格式

    共一行,包含一个浮点数,表示问题的解。

    注意,结果保留 6 位小数。

    数据范围

    −10000≤n≤10000

    输入样例:

    1000.00
    

    输出样例:

    10.000000
    
  • 第一次 AC 9/14

    #include<bits/stdc++.h>
    using namespace std;int main()
    {double n;scanf("%lf",&n);if(n<0){cout<<'-';n=-n;}double l=0,r=n;while(r-l>1e-8){double mid=(r+l)/2;if(mid*mid*mid>n)   r=mid;else l=mid;}printf("%.6f",l);return 0;
    }
    

    刚开始没有注意负数,后来调式的时候发现错误,但写出来处理负数,逻辑发生错误

  • 第二次 AC 100%

    #include<bits/stdc++.h>
    using namespace std;int main()
    {double n;scanf("%lf",&n);double l=-1000,r=1000;while(r-l>1e-8){double mid=(r+l)/2;if(mid*mid*mid>=n) r=mid;else l=mid;   }printf("%.6f",l);return 0;
    }
    
  • 另一种做法 直接调用函数

    #include<bits/stdc++.h>
    using namespace std;int main()
    {double n;scanf("%lf",&n);printf("%f",cbrt(n));  //cbrt开立方根函数,printf默认输出6位小数return 0;
    }
    

2.模拟散列表

  • 题目

    链接: 840. 模拟散列表 - AcWing题库

    维护一个集合,支持如下几种操作:

    1. I x,插入一个数 x;
    2. Q x,询问数 x 是否在集合中出现过;

    现在要进行 N 次操作,对于每个询问操作输出对应的结果。

    输入格式

    第一行包含整数 N,表示操作数量。

    接下来 N 行,每行包含一个操作指令,操作指令为 I xQ x 中的一种。

    输出格式

    对于每个询问指令 Q x,输出一个询问结果,如果 x 在集合中出现过,则输出 Yes,否则输出 No

    每个结果占一行。

    数据范围

    1≤N≤10510^5105
    10910^9109 ≤x≤10910^9109

    输入样例:

    5
    I 1
    I 2
    I 3
    Q 2
    Q 5
    

    输出样例:

    Yes
    No
    
  • 第一次 AC 100%

    #include<bits/stdc++.h>
    using namespace std;map<int,int> m;int n;int main()
    {scanf("%d",&n);char op[2];int x;while(n--){scanf("%s%d",op,&x);if(op[0]=='I'){m[x]=1;}else{m[x]==1?puts("Yes"):puts("No");}}return 0;
    }
    

    我体会到了 map 的快乐

2.字符串哈希

  • 题目

    链接: 841. 字符串哈希 - AcWing题库

    给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1]和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。

    字符串中只包含大小写英文字母和数字。

    输入格式

    第一行包含整数 n 和 m,表示字符串长度和询问次数。

    第二行包含一个长度为 n 的字符串,字符串中只包含大小写英文字母和数字。

    接下来 m 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问所涉及的两个区间。

    注意,字符串的位置从 11 开始编号。

    输出格式

    对于每个询问输出一个结果,如果两个字符串子串完全相同则输出 Yes,否则输出 No

    每个结果占一行。

    数据范围

    1≤n,m≤10510^5105

    输入样例:

    8 3
    aabbaabb
    1 3 5 7
    1 3 6 8
    1 2 1 2
    

    输出样例:

    Yes
    No
    Yes
    
  • 第一次 AC 11/13 TLE

    #include<bits/stdc++.h>
    using namespace std;int main()
    {int n,m;string s;cin>>n>>m>>s;string t,u;while(m--){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);t=s.substr(a-1,b-a+1);u=s.substr(c-1,d-c+1);  //注意后面这个参数 是要截取字串的长度,长度+1,也要记住!t==u?puts("Yes"):puts("No");}return 0;
    }
    

    字符串截取函数 substr 真不错

  • 第二次 哈希字符串公式法

    #include<iostream>
    #include<cstdio>#include<string>
    using namespace std;
    typedef unsigned long long ULL;
    const int N = 1e5+5,P = 131;//131 13331
    ULL h[N],p[N];// h[i]前i个字符的hash值
    // 字符串变成一个p进制数字,体现了字符+顺序,需要确保不同的字符串对应不同的数字
    // P = 131 或  13331 Q=2^64,在99%的情况下不会出现冲突
    // 使用场景: 两个字符串的子串是否相同
    ULL query(int l,int r){return h[r] - h[l-1]*p[r-l+1];
    }
    int main(){int n,m;cin>>n>>m;string x;cin>>x;//字符串从1开始编号,h[1]为前一个字符的哈希值p[0] = 1;h[0] = 0;for(int i=0;i<n;i++){p[i+1] = p[i]*P;            h[i+1] = h[i]*P +x[i];      //前缀和求整个字符串的哈希值}while(m--){int l1,r1,l2,r2;cin>>l1>>r1>>l2>>r2;if(query(l1,r1) == query(l2,r2)) printf("Yes\n");else printf("No\n");}return 0;
    }
    

Alt


http://www.ppmy.cn/news/39179.html

相关文章

【LeetCode】剑指 Offer 50. 第一个只出现一次的字符 p243 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/ 1. 题目介绍&#xff08;50. 第一个只出现一次的字符&#xff09; 在字符串 s 中找出第一个只出现一次的字符。如果没有&#xff0c;返回一个单空格。 s 只包含小写字母。 【测…

ChatGPT背后有哪些关键技术?CSIG企业行带你一探究竟

目录1 ChatGPT的时代2 CSIG企业行3 议题&嘉宾介绍3.1 对生成式人工智能的思考3.2 对话式大型语言模型研究3.3 文档图像处理中的底层视觉技术4 观看入口1 ChatGPT的时代 2015年&#xff0c;马斯克、美国创业孵化器Y Combinator总裁阿尔特曼、全球在线支付平台PayPal联合创始…

对象的比较(数据结构系列12)

目录 前言&#xff1a; 1.PriorityQueue 1.1PriorityQueue的特性 1.2PriorityQueue的构造器 1.3大根堆的创建 1.4PriorityQueue中函数的说明 2.java中对象的比较 2.1基本类型的比较 2.2对象的比较 2.2.1覆写基类的equals 2.2.2基于Comparable接口类的比较 2.2.3基于…

vue3的setup的使用和原理解析

1.前言 最近在做vue3相关的项目&#xff0c;用到了组合式api&#xff0c;对于vue3的语法的改进也是大为赞赏&#xff0c;用起来十分方便。对于已经熟悉vue2写法的同学也说&#xff0c;上手还是需要一定的学习成本&#xff0c;有可能目前停留在会写会用的阶段&#xff0c;但是s…

信号与系统之《一文看懂傅里叶变换》

“傅里叶变换是一种非常有用的数学工具&#xff0c;它可以将一个复杂的信号分解成许多简单的频率成分。傅里叶变换在信号处理、图像处理、音乐、视频和通信等许多领域都有广泛的应用。相信大部分同学在毕业之后的一段时间之内都还没有理解到傅里叶变换的精髓&#xff0c;今天我…

INFINONE XC164单片机逆向记录(5)C166地址系统

本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。免日后无印象,如有不当之处敬请指正(欢迎进扣群 24849632 探讨问题); 写在专栏前面https://blog.csdn.net/Junping1982/article/details/129955766 INFINONE XC164单片机逆向记录(1)资料准备

SDL问题预测

0x00 前言 这里针对可能针对SDL的问题记录&#xff0c;当然很多内容不会直接公布&#xff0c;需要大家自己去探索&#xff0c;当然如果有一些问题也可以同步进行留言 0x01 问题 1.SDL是什么英文组成的 Software Develment Life Cycle 有些称为SDLC&#xff0c;有的说是SDL实…

【数据结构】特殊矩阵的压缩存储|保姆级详解+图解

作者&#xff1a;努力学习的大一在校计算机专业学生&#xff0c;热爱学习和创作。目前在学习和分享&#xff1a;算法、数据结构、Java等相关知识。博主主页&#xff1a; 是瑶瑶子啦所属专栏: 【数据结构】&#xff1a;该专栏专注于数据结构知识&#xff0c;持续更新&#xff0c…