写题总结1

news2025/1/10 12:03:25

先把自己写完的总结一下:

题目一:
猫儿园的告示牌上贴着 a×b 大小的矩形广告纸。猫猫对广告不感兴趣,她想知道能否用 c×d 的矩形白纸完全覆盖这个广告。猫猫可以对白纸进行平移、旋转,但不能折叠或撕开等。如果可以完全覆盖输出 YES,否则输出 NO。

代码是这样的:

#include<stdio.h>
int main()
{
    int a,b,c,d;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if((a<=c&&b<=d)||(a<=d&&b<=c))printf("YES\n");
    else{
        printf("NO\n");
        
    }
    return 0;
}

。本来我想的是只要每个长宽分别大于等于另一个的长宽就可以了,其实如果刚好这个长没有大于等于这个长的话,但是这个宽大于等于,并且这个长又正好大于等于另一个的宽,就也可以所以包含两种情况,我说的这个是指用来覆盖的矩形;

题目二:

猫猫的电子邮箱中收到了一封密信,内容为一个由小写字母构成的字符串 
由于电脑故障,某个字符突然消失了,前后两部分 (可能为空) 拼接成了一个新的字符串 t。形式化地,假设 si​ 消失了,则。现在给定 t,猫猫想知道 s 中是否有可能存在 "love" 这个子串(不含引号)。如果有可能,输出 YES,否则输出 NO。
子串的定义为:一个字符串中连续的若干字符形成的新字符串。

 代码:

一看这题我满脑子都是直接列出情况,这里情况较少,是可以的,及时break可以节约时间,由于这里只问有没有,一旦找到就说明有了,就可以不用去遍历整个字符串了,但是要谨防数组越界,所以要在循环的最开头写上当到倒数第二个还没有结束的话就已经没有了;

#include<stdio.h>
#include<string.h>
char a[10001];
int main()
{
    scanf("%s",a);
    for(int i=0;i<strlen(a);i++)
    {
       if(i+2==strlen(a)){printf("NO\n");break;}
        if(a[i]=='o'&&a[i+1]=='v'&&a[i+2]=='e'){printf("YES\n");break;}
            if(a[i]=='l'&&a[i+1]=='v'&&a[i+2]=='e'){printf("YES\n");break;}
        if(a[i]=='l'&&a[i+1]=='o'&&a[i+2]=='e'){printf("YES\n");break;}
        if(a[i]=='l'&&a[i+1]=='o'&&a[i+2]=='v'){printf("YES\n");break;}
        
    }
    return 0;
        
}

 题目三:

猫猫发现了一个数列
为了防止数据溢出,猫猫想让你找到最大的正整数 n,an≤M,其中M=10^18,可以证明一定有解。

输入描述:

 

输出描述:

一行,一个整数,表示答案。

示例1

输入

复制2 2

2 2

输出

复制5

5

示例2

输入

复制999999998 2

999999998 2

输出

复制3

3

 这个题目我刚开始写个时候就在疯狂找规律,然后想着把所有的情况列出来,然后暴力求解,最后情况一直没有列全;然后我又想到可以直接求,反正数字不是很大,可以直接求,然后我就把这一串代码交上去了:

#include<stdio.h>
#include<math.h>
int main()
{
    const long long  mm=10e18;
    long long a,b;
    scanf("%d %d",&a,&b);
    int h=2;

    while(pow(a,b)<=mm)
    {
        long long t=a;
        a=b;
        b=pow(t,a);
        h++;

    }
    printf("%d\n",h);
    return 0;
}

突然发现这个也可以过加一个把d变成lld

#include<stdio.h>
#include<math.h>
int main()
{
    const long long  mm=10e18;
    long long a,b;
    scanf("%lld %lld",&a,&b);
    int h=2;

    while(pow(a,b)<=mm)
    {
        long long t=a;
        a=b;
        b=pow(t,a);
        h++;

    }
    printf("%d\n",h);
    return 0;
}

变成对数就好算了:

代码是这样的就过了:

#include<stdio.h>
#include<math.h>
int main()
{
    const long long  mm=10e18;
    long long a,b;
    scanf("%d %d",&a,&b);
    int h=2;

    while(b*log(a)<=log(mm))
    {
        long long t=a;
        a=b;
        b=pow(t,a);
        h++;

    }
    printf("%d\n",h);
    return 0;
}

但是这样写还是会有误差。由于这个取对数函数取出来是小数,但是误差不大,所以在这个题里面没有写误差的话也可以过,但是这里还是写一下:

#include<stdio.h>
#include<math.h>
int main()
{
    const long long  mm=10e18;
    long long a,b;
    scanf("%lld %lld",&a,&b);
    int h=2;
    const double k=1e-5;

    while(b*log(a)<=log(mm)+k&&pow(a,b)<=mm)
    {
        long long t=a;
        a=b;
        b=pow(t,a);
        h++;

    }
    printf("%d\n",h);
    return 0;
}

这个误差是k比喻很小,至于为什么要加在后面呢?我认为,越大的数开出来的小数误差就越大,就越容易变小,所以加在这个大的后面,这就解决了这个小bug,但是还有一个bug,如果有刚开始的pq本身就比后面的大的话,那么这时候刚好由于它损失的也大,但是又因为后面的误差加了一下的话就让它小了起来刚好满足这个条件,这时候就体现了后面的再次判断的功能了,这时候明显发现前面的大,不满足条件循环结束;这样就使得逻辑完美了;

这里再补充一下关于log函数,log(10)表示以e为底十为真数的对数,求出来是小数,log2(6)表示以2为底6为真数的对数;这样就好理解上面的了;当然别忘了加上数学的头文件;

当时我有一个非常疑惑的点就是为什么输入a,b的时候这里用%d就不行(过不了),上面的就可以,其实可以这样理解,这个ab的输入都是没有超过int范围的啊;就很疑惑QAQ;

还有一个题,也是我写的最久的:

然后看了别人的代码还没搞出来;之后专门用一篇来记录这个题解QAQ:

希望你一如既往的坚强 ,站在迎着光的地方, 活成自己想要的模样 ​​;)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【音视频第17天】RTSP、RTMP协议初识

被叫去搞直播了&#xff0c;悲喜交加。先学习一下基本的技术栈&#xff0c;RTSP RTMP HTTP 先简单随便看看吧。 目录 什么是流媒体协议RTMPRTMP 工作原理 RTSPRTSP 工作原理 RTMP 与 RTSP 区别详细看看RTSP简介RTSP交互流程OPTIONSDESCRIBESETUPPLAYPAUSESET_PARAMETERGET_PAR…

代码随想录算法训练营第四十一天|343. 整数拆分、96.不同的二叉搜索树

文章目录 343. 整数拆分96.不同的二叉搜索树:star: 343. 整数拆分 题目链接&#xff1a;代码随想录 本题就是一个个递推&#xff0c;通过将dp[i]定义为第i个值的最大乘积 然后最大乘积有两种来源&#xff0c;一个是(i - j) * j 还有一种是dp[i - j] * j; 解题思路&#xff1a;…

Nautilus Chain :基于模块化架构的Layer3正在走向成熟

Nautilus Chain是一个基于Eclipse和Celestia构建的模块化Layer3链。作为定位在Layer0的链基建概念&#xff0c;Eclipse和Celestia为面向未来的区块链扩容技术提供了一套开发工具和基础框架。尽管这种前沿技术过去一直处于概念验证阶段&#xff0c;尚未推出适用于大规模应用的成…

【消息队列】Kafka请求如何被处理的

前言 对于Kafka来说&#xff0c;分为几个阶段&#xff0c;一个是消息的生产请求&#xff0c;以及对应的消息的消费请求。一个是生产者发送到Broker&#xff0c;另一个是消费者通过pull的方式 请求Broker&#xff0c;那么Broker是如何处理这几个请求的。细分下来主要常见的是如…

OFDM-LS信道估计 MMSE信道估计公式推导

假设ofdmN个子载波之间是完全正交的&#xff0c;即不考虑ICI影响&#xff0c;通过发送训练序列来实现信道估计。 其中&#xff0c;在推导6.8的时候&#xff0c;需要将6.6先拆解一下。 X − 1 Y X − 1 ( X H Z ) X − 1 X H X − 1 Z H X − 1 Z X^{-1}Y X^{-1}(XHZ)…

【难学易用c++ 之 继承】

目录&#xff1a; 前言一、继承的概念及定义&#xff08;一&#xff09;概念&#xff08;二&#xff09;继承定义继承关系和访问限定符继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员七…

TiDB实战篇-常用的高可用架构

简介 TiDB实战篇-常用的高可用架构。 高可用要考虑的问题 同城三中心 RTO<35秒 RPO0(因为一个数据中心挂点了&#xff0c;还有其他两个可以提供服务) (优点)数据副本不能在同一个数据中心&#xff08;raft多数存活&#xff09;&#xff08;PD的label标签能够解决这个问题…

OpenCV基础之常见的图像梯度算子

文章目录 OpenCV基础之常见的图像梯度Roberts交叉算子Prewitt算子Sobel算子Laplacian算子 OpenCV基础之常见的图像梯度 梯度是一个向量&#xff0c;梯度方向指向函数变化最快的方向&#xff0c;大小就是它的模&#xff0c;也是最大的变化率。 图像梯度是指在图像中某个位置处沿…

关于容器(Docker)的形象比喻

1 将容器比喻为样板间 容器是一种特殊的进程 容器依赖与Linux操作系统内核的几项技术&#xff1a;namespace、cgroup、chroot namespace 与编程语言里的 namespace 有点类似&#xff0c;它可以创建出独立的文件系统、主机名、进程号、网络等资源空间&#xff0c;相当于给进程…

回归问题(Regression)

Regression 前言Dependent vs. Explanatory VariablesHandle Numerical Labelssquared error和variance什么区别 Linear RegressionLinear Regression in 1 Dimension Least Squares &#xff08;最小二乘&#xff0c;重点&#xff09;Least Squares ObjectiveMinimizing a Dif…

确保软件项目成功——验收测试指南

确保软件项目成功——验收测试指南 在软件项目验收测试中&#xff0c;软件测试报告是非常重要的一部分&#xff0c;需要准备和提交。以山东省在2021印发的《政府采购履约验收管理办法》为例&#xff1a; 省级各国家机关、事业单位和团体组织&#xff08;以下统称“采购人”&…

会话跟踪——JWT令牌

会话指的是浏览器与服务器之间的一次连接&#xff0c;我们称之为一次会话。 在用户打开浏览器第一个访问服务器的时候&#xff0c;这个会话就建立了&#xff0c;只要有任何一方断开连接&#xff0c;此时会话就结束了。再一次会话中是可以包含多次请求和相应。那什么是会话跟踪呢…

动力节点springsecurity笔记14~18SpringSecurity 集成thymeleaf

15 SpringSecurity 集成thymeleaf 此项目是在springsecurity-12-database-authorization-method 的基础上进行 复制springsecurity-12-database-authorization-method 并重命名为springsecurity-13-thymeleaf 15.1 添加thymeleaf依赖 | <groupId>org.springframewor…

vue3+vite3+typescript使用wangEditor编辑器

文章目录 ⭐写在前面⭐步入正题&#x1f680;1.安装&#x1f680;2.配置2.1 存数据2.2 读数据 &#x1f680;3.跨域及其他问题3.1 跨域3.2 其他问题 &#x1f680;4.写在最后 ⭐写在前面 &#x1f680; 框架Vue3 Vite3 TypeScript&#xff1a; &#x1f449; Vue3&#xff…

地铁站人流检测硬件部分

目录 一、概述 二、驱动程序 2.1debug串口 2.2体重传感器HX711 2.3滴答定时器 2.4ESP8266 2.5人体检测 2.6 IIC的GPIO 2.7 OLED的IIC 2.8 LED 三、应用 四、中断 一、概述 使用STM32C8T6作为主控 A9 ---> tx&#xff08;调试串口&#xff09; A10 ---> …

算法训练 Day41 | 动态规划

343. 整数拆分 思路&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#xff1a;dp[i]&#xff1a;分拆数字i&#xff0c;可以得到的最大乘积为dp[i]。 确定递推公式&#xff1a;dp[i] max(dp[i], max((i - j) * j, dp[i - j] * j)) 可以想 dp[i]最…

【python装饰器:看懂这10个例子你就掌握了!】

基本说明 Python 装饰器是一种函数&#xff0c;它可以用来修改其他函数的功能。它是 Python 中的一项高级编程技术&#xff0c;也是 Python 中比较重要的语法之一。 简单来说&#xff0c;装饰器就是一个函数&#xff0c;它可以接受一个函数作为参数&#xff0c;并返回一个函数…

Obsidian+坚果云+FolderSync解决电脑端和安卓端同步方案

目录1.Obsidian电脑端准备 2.Obsidian安卓端准备 3.坚果云电脑端准备 4.坚果云手机端准备 5.FolderSync手机端准备 6.百度云冗余备份 1.Obsidian电脑端准备 这里以windows版本为例&#xff0c;下载后安装 1.Obsidian官网&#xff1a;https://obsidian.md/ 官网下载有时候…

电力电网行业IT运维方案

智能电网背景下&#xff0c;电力、电网企业信息化逐渐渗透到其业务链的各个环节&#xff0c;云计算、物联网、移动互联网等新技术的应用&#xff0c;更驱动信息化与业务创新深度融合。电力、电网企业集团信息系统群逐渐朝着一体化方向发展&#xff0c;信息链越来越长&#xff0…

银行数字化转型导师坚鹏:宏观经济趋势与资本行业机遇和挑战

2023年宏观经济趋势与资本行业机遇和挑战 课程背景&#xff1a; 很多学员存在以下问题&#xff1a; 不知道我国目前的宏观经济形势&#xff1f; 不清楚宏观环境对我国经济的影响&#xff1f; 不知道资本行业未来主要发展趋势&#xff1f; 课程特色&#xff1a; 精彩解…