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

C++笔试强训day42

目录

1.最大差值

2.兑换零钱

3.小红的子串


1.最大差值

链接icon-default.png?t=N7T8https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204?tpId=182&tqId=34396&rp=1&ru=/exam/company&qru=/exam/company&sourceUrl=%2Fexam%2Fcompany&difficulty=2&judgeStatus=undefined&tags=&title=

因为b >= a,所以可以在遍历数组的时候更新所遍历到的最小值以及返回值即可

class Solution {public:int getDis(vector<int>& A, int n) {int ret = -0x3f3f3f3f;int l = 0, r = l + 1;while (r < n) {ret = max(A[r] - A[l], ret);if (A[r] < A[l]) {l = r;}r++;}return ret < 0 ? 0 : ret;}
};

2.兑换零钱

链接icon-default.png?t=N7T8https://www.nowcoder.com/practice/67b93e5d5b85442eb950b89c8b77bc72?tpId=230&tqId=40432&ru=/exam/oj

每个值代表一种面值的货币,每种面值的货币可以使用任意张

根据题意,可以分析出这是一道完全背包类型的题目:

直接分析状态转移方程和注意初始化的细节即可

#include <cstring>
#include <iostream>
using namespace std;
const int N = 10010;int w[N];
int dp[5010];
int n, aim;
int main()
{cin >> n >> aim;for(int i = 1; i <= n; ++i)cin >> w[i];memset(dp, 0x3f3f3f3f, sizeof dp);dp[0] = 0;for(int i = 1; i <= n; ++i){for(int j = w[i]; j <= aim; ++j){dp[j] = min(dp[j], dp[j - w[i]] + 1);}}cout << (dp[aim] == 0x3f3f3f3f ? -1 : dp[aim]) << endl;return 0;
}

3.小红的子串

链接icon-default.png?t=N7T8https://ac.nowcoder.com/acm/problem/260770

若种类的范围为 【1,x】的话,则满足条件的数组区间内方案数则为 right - left + 1,因此可以将种类范围想办法变为【1,x】,最后用【1,r】 - 【1,l】即可

滑动窗口遍历数组:(数据范围过大,注意开long long

#include <iostream>
#include <cstring>
#define int long long
using namespace std;int n, l, r;
char s[200010];int find(int x)
{if(x == 0)return 0;int cnt[26] = { 0 };int kind = 0, ret = 0;int L = 1, R = 1;while(R <= n){if(cnt[s[R] - 'a']++ == 0)kind++;while(kind > x){if(cnt[s[L++] - 'a']-- == 1)kind--;}ret += R - L + 1;R++;}return ret;
}signed main()
{cin >> n >> l >> r;for(int i = 1; i <= n; ++i)cin >> s[i];cout << find(r) - find(l - 1) << endl;return 0;
}

相关文章:

  • 【实例分享】访问后端服务超时,银河麒麟服务器操作系统分析及处理建议
  • 有趣的傅里叶变换与小波变换对比(Python)
  • Redis系列-4 Redis集群介绍
  • Linux基础指令(二)(文件、权限等)
  • CAN测试工具——BUSMASTER
  • 访问api是如何使用的
  • 学会python——读取大文本文件(python实例六)
  • 【系统架构】REST风格
  • VMware Ubuntu 虚拟机网卡消失及解决办法
  • C语言期末考试大纲详解
  • MySql 各种 join
  • C# —— 显示转换
  • 基于springboot实现问卷调查系统项目【项目源码+论文说明】计算机毕业设计
  • 工具链--nuxt框架 简介(一)
  • ACM算法学习路线、清单
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • Fundebug计费标准解释:事件数是如何定义的?
  • HomeBrew常规使用教程
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java概述
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux各目录及每个目录的详细介绍
  • react 代码优化(一) ——事件处理
  • RxJS: 简单入门
  • Wamp集成环境 添加PHP的新版本
  • 将 Measurements 和 Units 应用到物理学
  • 看域名解析域名安全对SEO的影响
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 那些年我们用过的显示性能指标
  • 七牛云假注销小指南
  • 前端js -- this指向总结。
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​secrets --- 生成管理密码的安全随机数​
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (八十八)VFL语言初步 - 实现布局
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .net Application的目录
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET企业级应用架构设计系列之开场白
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @拔赤:Web前端开发十日谈
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [C/C++]数据结构 深入挖掘环形链表问题