Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >​​​48days强训——day3

​​​48days强训——day3

作者头像
秋邱
发布于 2025-03-26 06:04:37
发布于 2025-03-26 06:04:37
2500
代码可运行
举报
文章被收录于专栏:笔记笔记
运行总次数:0
代码可运行

​第一题:简写单词

链接:简写单词_牛客题霸_牛客网

描述 规定一种对于复合词的简写方式为只保留每个组成单词的首字母,并将首字母大写后再连接在一起 比如 “College English Test”可以简写成“CET”,“Computer Science”可以简写为“CS”,“I am Bob”简写为“IAB” 输入一个长复合词(组成单词数 sum,sum≥1且sum≤100sum,sum≥1且sum≤100,每个单词长度len,len≥1且len≤50len,len≥1且len≤50),请你输出它的简写 输入描述: 输入一个复合词 输出描述: 输出一行,表示复合词的简写 示例1 输入: College English Test 输出: CET

思路:这题可以用string的成员函数getlin,也可以直接操作。其核心算法是移动窗口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//直接
#include <bits/stdc++.h>
using namespace std;

int main() 
{
   string s;
   while(cin >>s )
   {
        if(s[0] <= 'z'  && s[0]>='a') cout << (char)(s[0]-32);
        else cout << s[0];
   }
   return 0;
}


//getline
#include <bits/stdc++.h>
using namespace std;

int main() 
{
    string s;
    getline(cin, s);
    
    cout << (char)toupper(s[0]);

    for (int i = 1; i < s.size(); i++)
     {
        if (s[i - 1] == ' ') 
        {  
            if (s[i] >= 'a' && s[i] <= 'z') cout << (char)(s[i] - 32); 
            else cout << s[i];  
        }
    }

    return 0;
}

第二题:除2!

链接:除2!

题目描述 给一个数组,一共有 n n\ n 个数。 你能进行最多 k k\ k 次操作。每次操作可以进行以下步骤:

  • 选择数组中的一个偶数 ai,将其变成 ai/2 。

现在你进行不超过 k k\ k 次操作后,让数组中所有数之和尽可能小。请输出这个最小的和。 输入描述: 第一行输入两个正整数 n n\ n 和 k k\ k ,用空格隔开 第二行输入n n\ n 个正整数 aia_iai​ 数据范围: 1≤n≤100000,1≤k≤1091 ≤ n≤100000,1≤k≤10^91≤n≤100000,1≤k≤109 1≤ai≤1091≤a_i≤10^91≤ai​≤109 输出描述: 一个正整数,代表和的最小值。 示例1 输入 5 3 2 4 8 10 11 5 3 2 4 8 10 11 输出 24 24 说明 对8操作2次,对10操作1次,最后的数组是2 4 2 5 11。可以证明这样的操作是最优的。

思路:将所有的偶数放入一个大根堆里,每次对最大的数进行减半,减半之后,判断是否为偶数。

偶数,入堆。这里是相加,数据有点大,需要采用long long来存储。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,k;
    long long sum = 0,x;
    cin >> n >> k;
    priority_queue<long long> q;
    while(n--)
    {
        cin >> x;
        sum += x;
        if(x % 2==0)q.push(x);
    }
    while(k-- && q.size())
    {
        auto a = q.top() / 2;
        q.pop();
        sum -= a;
        if(a %2==0)q.push(a);
    }
        
    cout << sum << endl;
    return 0;
}

第三题:Fibonacci数列

链接:Fibonacci数列_牛客题霸_牛客网

描述 Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。 输入描述: 输入为一个正整数N(1 ≤ N ≤ 1,000,000) 输出描述: 输出一个最小的步数变为Fibonacci数" 示例1 输入: 15 输出: 2

思路:找到离输入数 目标数x 最近的两个相邻斐波那契数 b 和 c(b ≤ x < c),然后计算 x 到它们的较小距离并输出

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <bits/stdc++.h>
using namespace std;

int main() 
{
   int a = 1,b = 1,c = 2,x = 0;
   cin >> x;
   while(c < x)
   {
        a = b;
        b = c;
        c = a + b;
   }
   cout << min(c-x,x -b);
}

总结:

字符处理:toupper和tolower

数字转字符串:to_string

字符串转数字:stoi

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	char ch ;
	cout << (char)toupper('a') << endl; // 'A'
	cout << (char)tolower('B') << endl;  // 'b'

	int num = 123;
	string str = to_string(num);  // "123"

	string str = "123";
	int num = stoi(str);  // 123

	return 0;
}

getline

第一个参数是io流,第二次是字符变量

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
48days强训——day2
先判断快递重量a,若a<=1,基础费用为 20 元;若a>1,超出 1kg 部分向上取整,按每千克 1 元计算,再加上 20 元得到基础费用,接着根据字符 b 判断是否加。
秋邱
2025/03/25
370
48days强训——day2
48days强训——day7
思路:遍历字符串,当遇到数字时,用双指针计算子字符串的长度。若该长度大于之前记录的最大长度,更新起始位置和最大长度。最后输出最长连续数字串。
秋邱
2025/03/30
220
48days强训——day7
​​​​​48days强训——day4
若单词为"SEE"时,应该返回 true, 也即: 若单词为"XYZY"时,应该返回 false。
秋邱
2025/03/27
390
​​​​​48days强训——day4
【C++】 —— 笔试刷题day_3
这里我们可以看到输入的复合词中,每一个单词用 隔开;所以我们就可以应该单词应该单词读取(而不是使用getline来读取一行)。
星辰与你
2025/03/13
440
【C++】 —— 笔试刷题day_3
【算法】前缀和、模拟、位运算、差分
先把所有的数加起来,在这个过程之中把偶数放到堆中,在遍历这个全是偶数的堆k次,每次让所有数之和减去最大偶数的一半,如果最大偶数除2后还是偶数还要重新添加到堆中,在这个过程中还要关注堆是否已经空了。
_小羊_
2025/03/15
380
【算法】前缀和、模拟、位运算、差分
48days强训--day1
这道题,直接采用模拟的方法来做,对每一个数进行判断,用循环提取末尾的的数,判断之后再消掉末尾。
秋邱
2025/03/24
380
递归算法题练习(数的计算、带备忘录的递归、计算函数值)
概念:递归是指函数直接或间接调用自身的过程。 解释递归的两个关键要素: 基本情况(递归终止条件):递归函数中的一个条件,当满足该条件时,递归终止,避免无限递归。可以理解为直接解决极小规模问题的方法。递归表达式(递归调用):递归函数中的语句,用于解决规模更小的子问题再将子问题的答案合并成为当前问题的答案。
走在努力路上的自己
2024/03/02
1640
递归算法题练习(数的计算、带备忘录的递归、计算函数值)
蓝桥杯--算法入门级题目及答案解析
写在最前面: 本文中会出现大量的请查阅.请自学什么的,不是我不讲,本文是面向算法初学者和蓝桥杯的文章,如果真的想看进阶算法的也不会来看这些题目,所以不要介意,我这里就算是抛砖引玉了,大佬勿喷,ACMEer绕道哈哈哈哈。
风骨散人Chiam
2020/10/28
7750
XMU oj Problem List
注意不要有不必要的输出,比如"请输入 a 和 b 的值: ",示例代码见隐藏部分。
glm233
2020/09/28
8250
牛客小白月赛22 A~~J
A.链接:https://ac.nowcoder.com/acm/contest/4462/A 来源:牛客网
杨鹏伟
2020/09/11
3900
天梯赛题库
L1-009 N个数求和 (20分) 思路:分母相乘,分子先相乘在相加,然后约分。
杨鹏伟
2020/11/12
8290
【备战蓝桥】 算法·每日一题(详解+多解)-- day1
蓝桥杯全国软件和信息技术专业人才大赛是由中华人民共和国工业和信息化部人才交流中心主办,国信蓝桥教育科技(北京)股份有限公司承办的计算机类学科竞赛。
苏州程序大白
2022/04/28
2820
【备战蓝桥】 算法·每日一题(详解+多解)-- day1
【C++笔试强训】如何成为算法糕手Day3
利用优先队列将最大数当作大根,每次将最大的数进行判断,使其满足次数不超过k次。
小文要打代码
2024/10/16
810
【C++笔试强训】如何成为算法糕手Day3
算法修炼之练气篇——练气十二层
一个自然数被8除余1,所得的商被8除也余1, 再将第二次的商被8除后余7,最后得到一个商为a. 又知这个自然数被17除余4.所得的商被17除余15, 最后得到一个商是a的2倍. 求这个自然数.
命运之光
2024/03/20
1310
算法修炼之练气篇——练气九层
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?
命运之光
2024/03/20
1100
算法修炼之练气篇——练气九层
算法竞赛入门【码蹄集新手村600题】(MT1001-1050)
欢迎来到程序设计的世界,请编写一个简单程序,输出2行字符,第一行为“Thisis my first program!”,第二行为“Coding is fun!"
灵彧
2022/08/03
2.8K0
算法竞赛入门【码蹄集新手村600题】(MT1001-1050)
进制算法题(进制转换、Alice和Bob的爱恨情仇)
对于一个十进制数字,比如说153,其本质是每一个数位上的数字乘上这一位上的权重,即:153=(1x
走在努力路上的自己
2024/03/03
1470
进制算法题(进制转换、Alice和Bob的爱恨情仇)
每日算法刷题Day4-完全数、分情况输出、平方矩阵、斐波那契数列匹配输出
⭐每日算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,与笔者另一系列文章有所区别,并不是以知识点的形式提升算法能力,而是以实战习题的形式理解算法,使用算法。在众多刷题平台中我比较推荐“牛客”平台,它与其他平台相比有以下优点:
timerring
2022/09/21
4660
每日算法刷题Day4-完全数、分情况输出、平方矩阵、斐波那契数列匹配输出
记第一次参加PAT(附题解)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
9000
记第一次参加PAT(附题解)
湖南大学程序设计竞赛新生赛(重现赛)
题目链接—点我开启传送门哦! A.题意:就是求任意两个斐波那契数列的最大公约数!
杨鹏伟
2020/09/11
5300
湖南大学程序设计竞赛新生赛(重现赛)
相关推荐
48days强训——day2
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验