牛客周赛 Round 61

CentOS 7.9安装python3.11 阅读详情

A.Letter Song ~ 致十年后的我们

       题目要求的是,在一个标准输出中,修改其中的一个部分,其他它的保持不变,因此,可以联想到字符串。对于修改字符串中的某一个元素,进行重新赋值。

代码一:字符串

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string str;
	cin>>str;
	str[2]+=1;
	cout<<str;
	return 0;
}

   字符串方法较为简单,也利于理解,便于对答案进行求解。

代码二:数字

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
	int year,mouth,day;
	scanf("%d-%d-%d",&year,&mouth,&day);
	printf("%d-%02d-%02d",year+10,mouth,day);
}

  代码很奇妙,直接利用int来存储数据,并且对年份直接处理,在年份后直接加10,格式化输出,得出最后答案。

对于%02d的解释:

在 C++ 中,`printf` 函数的格式化输出中,`%02d` 是一个格式说明符,用于控制整数的输出格式。具体来说:

- `%` 是格式说明符的开始。
- `0` 表示如果数字的位数不足时,前面用零填充。
- `2` 表示输出的最小宽度为 2 位。
- `d` 表示输出的是一个十进制整数。

### 例子

1. **输出小于 10 的数字**:
   - 如果 `mm` 或 `dd` 是 5,使用 `%02d` 输出时,会显示为 `05`。
   - 如果 `mm` 或 `dd` 是 12,使用 `%02d` 输出时,会显示为 `12`。

2. **输出大于等于 10 的数字**:
   - 如果 `mm` 或 `dd` 是 10,使用 `%02d` 输出时,会显示为 `10`。
   - 如果 `mm` 或 `dd` 是 20,使用 `%02d` 输出时,会显示为 `20`。

### 为什么使用 `%02d`

在日期格式中,通常希望月份和日期都是两位数,以便于保持格式的一致性。例如,日期 `2023-5-3` 在某些情况下可能会被格式化为 `2023-05-03`,这样更易于阅读和处理。

### 总结

使用 `%02d` 可以确保输出的数字始终是两位数,前面用零填充,从而使输出格式更加整齐和一致。在处理日期和时间等场景时,这种格式非常常见。

代码三:数字+字符串

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
	int year;
	string str;
	cin>>year;
	cin>>str;
	year+=10;
	cout<<year<<str;
}

  利用前面输入整型变量,后边输入字符串,从而轻松对题目进行求解,直接对前面整型进行处理,后面字符串照常输出,相当精细。

B:简单图形问题

题目描述:

       需要判断的是给出一个面积是正方形,还是等边三角形,或者都不是,输出对应的值。根据对于正方形来说,一个数满足平方数时,就可以知道它一定是个正方形;而对于等边三角形来说,我求面积公式(如下图),边长为2a,则求出的面积带根号的,而题目给出的是整数,所以不可能是等边三角形,也不可能两者都是所以直接排除两种情况。只需要考虑是或者不是三角形就可以了。

代码一:

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	while(n--){
		int a;
		cin>>a;
		int b=sqrt(a);
		if(b*b==a)
		  cout<<"0"<<endl;
		else 
		  cout<<"3"<<endl;
	}
	return 0;
}

 代码如上,利用sqrt函数直接判断平方数,从而快速得到需要的答案。

c:小红的机器人构造 - Ⅰ+Ⅱ+Ⅲ

代码:(来源@princeseven)

#include<iostream>
using namespace std;
const int N=1e9+7;
typedef long long ll;
ll n,t,x,y,i,l,r,d,u,f[100001];char s[100002];
ll qmi(ll a){
    ll ans=1,n=N-2;
    while(n){
        if(n%2)ans=ans*a%N;
        a=a*a%N;n/=2;
    }return ans;
}
ll C(ll m,ll n){return f[n]*qmi(f[m])%N*qmi(f[n-m])%N;}
int main(){cin>>t;f[0]=1;
    for(i=1;i<100001;i++)f[i]=i*f[i-1]%N;
    while(t--){l=r=d=u=0;
        cin>>n>>x>>y>>s;
        for(i=0;i<n;i++)
            if(s[i]=='L')l++;
            else if(s[i]=='R')r++;
            else if(s[i]=='D')d++;
            else u++;
        if(u<x||d<-x||r<y||l<-y)cout<<"NO\n";
        else{
            cout<<"YES ";int x1=x,y1=y,l1=l,r1=r,u1=u,d1=d;
            for(i=0;i<n;i++){
                if(s[i]=='L')if(l-r>-y)l--;else cout<<s[i],y++,l--;
                else if(s[i]=='R')if(r-l>y)r--;else cout<<s[i],y--,r--;
                else if(s[i]=='D')if(d-u>-x)d--;else cout<<s[i],x++,d--;
                else if(s[i]=='U')if(u-d>x)u--;else cout<<s[i],x--,u--;
            }x=x1,y=y1,l=l1,r=r1,u=u1,d=d1;
            cout<<" "<<C(y<0?r-y:l+y,l+r)*C(x<0?u-x:d+x,d+u)%N<<"\n";
        }
    }
}

算法模块分析:

这段代码实现了快速幂算法(Exponentiation by Squaring),用来计算 \( a^{n} \mod N \),其中 \( n \) 是一个非负整数。下面是对代码的逐行解释:

### 代码分析

```cpp
ll qmi(ll a) {
    ll ans = 1, n = N - 2; // 初始化 ans 为 1,n 为 N-2
    while (n) { // 当 n 不为 0 时循环
        if (n % 2) // 如果 n 是奇数
            ans = ans * a % N; // 更新 ans
        a = a * a % N; // 将 a 平方并取模
        n /= 2; // n 除以 2
    }
    return ans; // 返回结果
}
```

### 详细解释

1. **参数和返回值**:
   - `ll qmi(ll a)`:这是一个函数,接受一个参数 `a`,返回一个 `ll` 类型的结果(通常是 `long long`)。
   - `N` 是一个全局常量,表示模数。

2. **初始化**:
   - `ll ans = 1`:初始化结果为 1,因为任何数的 0 次方都是 1。
   - `ll n = N - 2`:将 `n` 初始化为 `N - 2`,表示我们要计算 \( a^{N-2} \mod N \)。

3. **快速幂算法**:
   - `while (n)`:当 `n` 不为 0 时,继续进行循环。
   - `if (n % 2)`:检查 `n` 是否为奇数。如果是奇数,则将当前的 `a` 乘到 `ans` 上。
   - `ans = ans * a % N`:更新 `ans`,并取模 `N` 以防止溢出。
   - `a = a * a % N`:将 `a` 平方,并取模 `N`。这一步是快速幂的关键,可以将指数减半。
   - `n /= 2`:将 `n` 除以 2,继续处理下一位。

4. **返回结果**:
   - `return ans`:返回计算的结果。

### 例子

假设 \( N = 7 \) 和 \( a = 3 \),那么函数 `qmi(3)` 将计算 \( 3^{5} \mod 7 \)(因为 \( N - 2 = 5 \))。

- **步骤**:
  - \( n = 5 \)(奇数),所以 \( ans = 1 \times 3 \mod 7 = 3 \)
  - \( a = 3 \times 3 \mod 7 = 2 \)(平方)
  - \( n = 2 \)(偶数),不更新 `ans`
  - \( a = 2 \times 2 \mod 7 = 4 \)(平方)
  - \( n = 1 \)(奇数),所以 \( ans = 3 \times 4 \mod 7 = 5 \)
  - \( a = 4 \times 4 \mod 7 = 2 \)
  - \( n = 0 \)(结束循环)

最后,返回的 `ans` 是 `5`,即 \( 3^{5} \mod 7 = 5 \)。

### 总结

这段代码有效地实现了快速幂算法,具有 \( O(\log n) \) 的时间复杂度,非常适合处理大数的幂运算和模运

D:小红的差值构造 - easy+hard+extreme

 

代码:(来源@以你为瘾)

#include<iostream>
using namespace std;
long long t,n,l,x,y,m;
void slove()
{
    cin >> n >> l ;
    if(n%2) m=n/2+1;
    else m=n/2;
    long long ans=0;
    if(l<n)
    {x=m-l/2,y=m+l-l/2;
    ans=((1+x-1)*(x-1)+(1+m-x)*(m-x)+(1+y-m-1)*(y-m-1)+(1+n-y)*(n-y))/2;}
    else {y=m;x=y-l;
          ans=((1+y-1)*(y-1)+(1+n-y)*(n-y))/2;
         }
    cout << x << ' ' << y << ' ' << ans << endl ;
}
int main()
{
    cin >> t ;
    while(t--)
        slove();
}

 

总结:

本次的竞赛参加得还算及时,拿出了比较好的状态,把自己平时学的东西,展示了出来。但是,真正能成为“牛”的人还是远远不够的,还只是“客”,而不是“牛”,任重而道远,加油吧!一步一步地努力!相信那些看似平常的日复一日,终有一天会让我们看到坚持的意义。

NXP S32K5 MCU如何赋能Zonal架构与软件定义汽车? 汽车电子架构正从分布式ECU向域集中、再向Zonal分区架构演进,核心驱动力在于线束简化、算力下沉与软件分层解耦。区域控制器作为物理区域的“调度员”,需要同时满足实时响应、功能安全、多网络协议转换和OTA升级等要求,这使MCU与SoC的选型成为系统工程的关键决策。MCU凭借确定性的微秒级启动、低功耗、丰富的IO控制以及成熟的ASIL-D认证路径,仍是区域控制器的主流选择。NXP S32K5正是面向这一场景发布的系列MCU:它集成多核锁步、CAN-XL、TSN以太网、硬件安全模块与双Bank Flash,补齐 阅读详情

相关推荐

【计算机视觉学习03】全景图像拼接

文章目录一、基本原理1.1 图像拼接的几何原理1.2 直线,圆,复杂曲线方程拟合1.3 RANSAC算法1.4 APAP算法1.5 寻找最佳拼接缝(Seam Finding)1.5.1 最大流问题1.5.2 最大流问题的增广链算法1.5.3 最大流最小割定理二、 图像拼接具体实现2.1 代码2.2 运行结果 一、基本原理 将两幅或多幅具有重叠区域的图像,通过特征匹配将具有相同的特征点(SIFT特征点)的图像拼接在一起,将来自多个不同视角拍摄的图像变换到同一视角下,拼接成一张宽视野图像。 图像拼接基础流程

一个正在努力学习的iter 7787

牛客周赛 Round 61 (C++实现)

本文将讲解牛客周赛 Round 61的前3题

Yui_的博客 1483

opencv实践项目-图片拼接之缝合线算法

opencv 图片缝合线算法

wyw0000的博客 2624

牛客周赛61

^ ^

AstronomyFirst的博客 734

手把手教你设计MTBF加速寿命试验:从阿伦尼斯模型到卡方计算(含Excel模板)

本文详细介绍了如何设计MTBF加速寿命试验,从阿伦尼斯模型到卡方计算,帮助工程师在合理时间内获得准确的MTBF数据。通过工业电源模块的实例演示,涵盖活化能确定、温度应力设计、样本量计算及数据记录规范,并提供Excel模板实现自动化计算,显著提升测试效率。

weixin_42563415的博客 540

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践

(应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。

百态·数智思维 | 聚焦大数据、量化与未来AI 1244

牛客-致敬十年后的我们

【代码】牛客-致敬十年后的我们。

2301_80876033的博客 238

WPS访问权限不足怎么解决??具体怎么操作?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 4171

牛客周赛 Round 61(思维、组合数)

牛客周赛 Round 61(思维、组合数)

mldl_的博客 1183

C#与硬件开发入门:从零开始搭建你的第一个硬件项目

《C#硬件开发入门指南》摘要:本文介绍了使用C#进行硬件开发的基础知识,重点讲解了通过串口通信控制硬件设备的实现方法。内容包括:C#硬件开发优势、必备基础知识、环境准备步骤,并提供了一个完整的串口数据读取示例代码。文章还给出了进阶学习建议和常见问题解决方案,帮助开发者快速掌握C#与硬件设备通信的基本技能,为进一步开发物联网、工业控制等应用打下基础。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 973

[QMT量化交易小白入门]-七十一、十年回测ETF动量策略,超额年化收益率为10.6%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1854

牛客周赛 Round 55

牛客周赛Round 55

学校题目记录日常 1581

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

牛客周赛 Round 3

菜鸟的第一次AK,真不错

m0_62784756的博客 882

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

牛客周赛 Round 76

高一位为 0 当前位为 1 的位置,将该位置的 1 与高一位的 0 交换位置,并且之前枚举到的所有 1 从第 0 位向高位开始放置。,其实将所有的元素取最大公约数 小于等于 任意一对数取最大公约数,答案就是。我们知道 x 与 y 一一对应。我们可以用 dp 来求符合条件的最长的序列。开头的符合条件的最长序列, 我们知道 x 与 y 一一对应,那么 以。开头的符合条件的最长序列中第二个数 一定是。就是在二进制下,从低位向高位枚举,找到。要求最小的数组元素之和,那么找出最小的。子串短,就越可能出现更多次数。

weixin_65535353的博客 679

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

牛客周赛 Round 25

小红去淘宝买了n件物品,第i件物品价格是ai,其中部分物品小红不满意选择退货,退货可以原价退但需要收取max(5,⌊ai / 100⌋)的运费。小红想知道自己最终花费了多少钱。⌊x⌋代表对 x 向下取整。例如:⌊3.7⌋=3。

lianxuhanshu_的博客 1402

牛客周赛 Round 77 题解

那么这个权重一定在二进制的某一个位上有着相同的1(与运算全1出1,有0出0),因此可以使用并查集来维护这个有着二进制位同为1的集合,就是如果这个两个数可以在同一个社交网络,那么这个两个数所在的两个集合也可在同一个社交网络。,子串的自审值为0的情况只有一种可能,那就是这个子串全是0,故此我们可以用【核心思路】来快速求自审值的和,因为自审值只可能是0或1,所以有字符1的子串的个数即为答案。,这就是线性同余算法,也就是若y可以被a和b的最大公约数整除,那么y就一定通过a和b两个数字构造出来,x也是同理。

CNew333的博客 1395

牛客周赛 Round 4 (ioi赛制 BCD题解)

思维思维。

m0_73557680的博客 867

牛客周赛 Round 4---游游的因子计算

【代码】牛客周赛 Round 4---游游的因子计算。

陈进士学习的博客 356

牛客周赛 Round 66 —— D.小苯的蓄水池(easy)

【代码】牛客周赛 Round 66 —— D.小苯的蓄水池(easy)

2401_82757880的博客 315

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 237

选型笔记:Type‑C 扩展坞方案评估|DP1.4 转 HDMI2.0 桥接芯片 GSV2201S@ACP

本文记录 GSV2201S 这款 DP1.4a 转 HDMI2.0 桥接芯片评估,梳理视频、HDCP、PD 集成能力,总结 Type‑C 转接 Dongle、扩展坞方案的适配边界,以及差分走线、PD 时序、HDCP 握手等高频调试问题,为 C 口视频转接方案选型提供参考。

ACP广源盛的博客 220

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 390

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 336

【C语言】字符与字符串函数

C语言中字符串为以\0结尾的字符数组,标准库函数基于此约定。本文解析字符串内存布局,详解ctype.h与string.h中字符分类、长度计算、拷贝、比较等函数的使用要点,强调长度判断与越界风险,最后通过命令行待办事项示例整合fgets、sscanf、strncpy、strcmp,展示实际应用中的关键细节。

记录在学习过程中学到的知识 343

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 377

C++ 函数模版

模板参数:● template ,T 就是类型占位符,名字可以自定义,习惯用T● 占位符可以在函数返回值、形参、函数内部当作类型使用使用要点模板代码一般写在头文件:编译器需要看到完整模板源码,才能在每个编译单元完成实例化全局函数、类内成员函数都可以写成模板实例化发生在编译阶段,不是运行时隐式实例化:调用时编译器自动推导实参类型,生成对应版本函数。

2501_94041724的博客 304
上一篇: 第 18 场 小白入门赛(蓝桥)水浒专场!!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值