当前位置: 首页 > web >正文

【笔试训练】简单写词|dd爱框框|除2!

文章目录

  • 1.简单写词
  • 2.dd爱框框
  • 3.除2!


1.简单写词

简单写词
在这里插入图片描述

思路:这道题思路非常简单,while(cin)循环输入每个单词,自动跳过空格,所以每次都只要判断单词的第一个字母是否是大写,如果是,则输出,如果是小写,则转成大写再输出即可。

#include <iostream>
#include <string>
using namespace std;int main() {//以空格作为分割符string s;while(cin >> s)   //这里自动跳过空格,否则如果直接输入空格会直接停止。{if(s[0] >= 'a' && s[0] <= 'z')cout <<  (char)(s[0]  - 'a' + 'A');else cout << s[0];}return 0;
}

2.dd爱框框

dd爱框框

在这里插入图片描述

思路:
这道题是一道典型的滑动窗口题目,只不过要注意一个细节问题:有效下标是从1开始的!!
这道题我一开始写的时候死活写不出来,看了题解才发现是下标问题。

滑动窗口四部曲:

  • 1.进窗口
  • 2.while/if判断要出窗口的条件
  • 3.出窗口
  • 4.更新结果(这个更新结果不一定是在最后一步进行,要看具体的题目,有可能是在任意位置更新结果)
//经典滑动窗口
//冯你个福的一开始写没注意到数组是从1开始的。
#include <iostream>
#include <vector>
using namespace std;int main()
{int n,x;cin >> n >> x;vector<int>arr(n+1,0);for(int i = 1;i <= n;i++)cin >> arr[i];int l = 1,r = 1;int sum = 0,len = 10000000;int flagl = 0;while(r <= n){//1.进窗口sum += arr[r];while(sum >= x) //2.判断{//每次都更新结果,保证len最小,且l最小。if(r-l+1 < len){flagl = l; //flagl就是最小的len = min(len,r - l + 1);}//出窗口sum -= arr[l++];}r++;}cout << flagl << " " << flagl + len - 1 << endl;return 0;
}

3.除2!

在这里插入图片描述
除2!

思路:
1.搞一个大根堆,一遍输入一边判断如果输入的元素为偶数,则进堆(奇数不进堆)
2.每次都取出堆顶元素(取了最大的偶数),进行/2操作,然后再判断/2后是否还是偶数,是的话再次进堆
3.循环进行,直到堆为空||操作了k次。
4.返回所有操作后的值即可。

#include <iostream>
#include <queue>using namespace std;int main()
{int n,k;cin >> n >> k;priority_queue<long long> heap;int i = 0;long long sum = 0; //统计所有被操作过和没被操作过的元素和while(i < n){long long a;cin >> a;sum += a;if(a % 2 == 0)heap.push(a);i++;}while(heap.size() && k--){long long t = heap.top();heap.pop();t /= 2;sum -= t; //该语句位置一定要放对if(t % 2 == 0)heap.push(t);}cout << sum << endl;return 0;
}
http://www.xdnf.cn/news/6540.html

相关文章:

  • Cursor无法使用C/C++调试的解决办法
  • Ubuntu使用Docker搭建SonarQube企业版(含破解方法)
  • Hugging Face 中 LeRobot 使用的入门指南
  • LangChain4j +DeepSeek大模型应用开发——10 检索增强生成 RAG
  • Ubuntu下配置VScode出现#include错误请更新includePath的解决方法
  • Java类一文分解:JavaBean,工具类,测试类的深度剖析
  • 汽车零部件冲压车间MES一体机解决方案
  • 卷积神经网络和深度神经网络的区别是什么?
  • 数据结构与算法-线性表-单链表(Linked List)
  • OSCP备战-kioptrix 2014详细步骤
  • 第三十一节:直方图处理-直方图反向投影
  • 题目:两个线程交替输出1-100的数字,例如:t1--》1,t2--》2,....
  • 最小生成树(竞赛)
  • python基础语法(三-上)
  • 技术文档:变频器干扰问题与解决方案
  • 印度全印度游戏联合会(AIGF)介绍与用途
  • 本地化部署HomeAssistant语音助手并接入DeepSeek
  • git 本地提交后修改注释
  • 数控机床控制单元技术方案:基于EFISH-SCB-RK3588/SAIL-RK3588的赛扬N100/N150国产化替代全场景解析
  • Seata源码—3.全局事务注解扫描器的初始化二
  • Femap许可用户行为分析
  • 培训考试系统在职业技能培训中发挥着怎么样的作用
  • 乡村地区无人机医药配送路径规划与优化仿真
  • 山东大学计算机图形学期末复习整理5——CG10上
  • FTP 工具 vs. 命令行 SCP/RSYNC
  • (十九)Java集合框架深度解析:从基础到高级应用
  • Linux 内核核心知识热点题分析:10 个连环打通的难点
  • Modern C++(一)基本概念
  • 养生:健康生活的极简攻略
  • free void* 指令