AtcoderABC233场

news2024/12/28 20:47:32

A - 10yen StampA - 10yen Stamp

在这里插入图片描述在这里插入图片描述

题目大意

Takahashi已有X日元邮票,计算出Takahashi至少需要再贴多少个10日元的邮票才能使得信封上的邮票总价值达到Y日元。

思路分析

我们只需要计算Y - X,即Y日元减去X日元的差值。如果该差值大于等于0,则说明已经满足条件,不需要再贴任何10日元的邮票;如果该差值小于0,则需要将其除以10并向上取整,得到所需的10日元邮票数量。

知识点

  • 向上取整:通过将(a+b-1)除以b的方式实现。

时间复杂度

O(1)

AC代码

向上取整做法:

#include<bits/stdc++.h>

using namespace std;

int ceil(int a,int b){return (a+b-1)/b;}

int main(){
  int x,y;
  cin >> x >> y;
  if(x>=y){cout << "0\n";return 0;}
  cout << ceil(y-x,10) << '\n';
  return 0;
}

普通做法

#include<bits/stdc++.h>
using namespace std;
int main()
{
  int x,y;
  cin>>x>>y;
  if(y<x)cout<<0<<endl;
  else{
    if((y-x)%10==0) cout<<(y-x)/10;
    else cout<<(y-x)/10+1;
  }
  return 0;
}

B - A Reverse B - A Reverse

在这里插入图片描述在这里插入图片描述

题目大意

题目要求对给定的字符串S中的第L个字符到第R个字符进行反转,并输出结果。

思路分析

可以使用双指针的方法来实现字符串的反转。

  • 通过使用双指针的方法,可以同时从字符串的两端向中间遍历并交换字符,实现字符串的反转。这样可以避免直接修改原始字符串,而是通过交换字符的方式得到反转后的结果。

时间复杂度

O(N/2)

AC代码

#include<bits/stdc++.h>

using namespace std;

int main(){
  int l, r;
  string s;
  cin >> l >> r >> s; 
  l--; r--; // 将l和r减1,使得索引从0开始
  int p = l, q = r; 
  while(p < q){
    swap(s[p], s[q]); // 交换第p个和第q个字符
    p++; q--; // 移动指针
  }
  cout << s << '\n';
  return 0;
}

C - Product C - Product

在这里插入图片描述在这里插入图片描述在这里插入图片描述

题目大意

有N个袋子,每个袋子里都装着一些球,每个球上都写有一个正整数。我们要从每个袋子中选择一个球,使得所选球的数字乘积等于给定的X。询问有多少种不同的选择方式。

思路分析

使用DFS,该问题属于组合型问题,需要穷举所有可能的组合。DFS能够按照一定的规则进行深入搜索,找出所有符合条件的组合。
定义一个DFS函数,用于进行深度优先搜索。其中pos表示当前处理的袋子索引,seki表示当前累积的乘积。当pos等于N时,表示已经处理完所有袋子,判断seki和X是否相等,如果相等则计数器加一。否则,继续递归调用DFS函数,处理下一个袋子。

时间复杂度

O(L^N)

AC代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll ans = 0;
ll n,x;
vector<vector<ll>>a;

void dfs(ll pos, ll seki) {
    if (pos == n) {
        if (seki == x) ans++;
        return;
    }
    
    for (ll c : a[pos]) {
        if (seki > x / c) continue;
        dfs(pos + 1, seki * c);
    }
}

int main() {
    cin >> n >> x;
    a.resize(n);
    for (ll i = 0; i < n; i++) {
        ll L;
        cin >> L;
        a[i].resize(L);
        for (ll j = 0; j < L; j++) {
            cin >> a[i][j];
        }
    }
    
    dfs(0, 1);

    cout << ans << endl;

    return 0;
}

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

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

相关文章

MyBatisPlus分页功能实现

MyBatisPlus分页功能实现 1. MyBatisPlus分页使用1.1 设置分页拦截器作为Spring管理的bean1.2 执行分页查询 2. 开启MyBatisPlus日志3. 解决日志打印过多问题3.1 取消初始化spring日志打印3.2 取消SpringBoot启动banner图标3.3 取消MybatisPlus启动banner图标 1. MyBatisPlus分…

零信任安全解决方案

什么是零信任 零信任网络架构 &#xff08;ZTNA&#xff09; 或零信任安全是一种新的组织网络安全方法。它旨在修复传统基于边界的安全性中的缺陷并简化网络设计。 它以“永不信任&#xff0c;始终验证”的原则运作。这意味着&#xff0c;无论用户或设备位于何处&#xff0c;…

基于自适应运动补偿的双向运动估计算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................................................................% 单向运动法 …

繁體標楷體 如何安装使用?

中文繁體標楷體。 ——这个地方下载&#xff1a;http://www.downcc.com/font/316365.html ——下载下来被叫做“台湾标楷体DFKai-SB.ttf” ——安装到“C:\Windows\Fonts”以后名字叫 ——在WPS中使用&#xff0c;被称为这个

使用node内置test runner,和 Jest say 拜拜

参考 https://nodejs.org/dist/latest-v20.x/docs/api/test.html#test-runner 在之前&#xff0c;我们写单元测试&#xff0c;必须安装第三方依赖包&#xff0c;而从node 20.0.0 版本之后&#xff0c;可以告别繁琐的第三方依赖包啦&#xff0c;可直接使用node的内置test runner…

【搜索引擎Solr】Apache Solr 神经搜索

Sease[1] 与 Alessandro Benedetti&#xff08;Apache Lucene/Solr PMC 成员和提交者&#xff09;和 Elia Porciani&#xff08;Sease 研发软件工程师&#xff09;共同为开源社区贡献了 Apache Solr 中神经搜索的第一个里程碑。 它依赖于 Apache Lucene 实现 [2] 进行 K-最近邻…

龙芯iTOP-2K1000开发板制作启动U盘

我们准备一个 U 盘&#xff08;最小不要小于 4G&#xff0c;最大不要大于 32G&#xff09;&#xff0c;U 盘有且只有一个分区&#xff0c;U 盘格式化成 FAT32 分区&#xff0c;&#xff0c;如不满足要求&#xff0c;请格式化您的 U 盘&#xff0c;准备完成如下图所示 格式化软…

推荐系统(十)用户行为序列建模-Pooling 路线

对推荐系统而言&#xff0c;准确捕捉用户兴趣是其面临的核心命题。不管是样本、特征还是模型结构等方面的优化&#xff0c;本质上做的事情都是在提高推荐系统对用户兴趣的捕捉能力&#xff0c;因此如何提高这种能力&#xff0c;对推荐效果的提升有重要作用&#xff0c;也是算法…

性能优化问题

提升首屏的加载速度&#xff0c;是前端性能优化中「最重要」的环节&#xff0c;这里笔者梳理出一些 常规且有效 的首屏优化建议 1、路由懒加载 SPA 项目&#xff0c;一个路由对应一个页面&#xff0c;如果不做处理&#xff0c;项目打包后&#xff0c;会把所有页面打包成一个文…

使用lua脚本操作redis

redis中实现事务有两种方法&#xff1a; 1.WATCH监视键的变动&#xff0c;然后MULTI开始事务&#xff0c;EXEC提交事务 WATCH key [key…]&#xff1a;监视一个或多个键&#xff0c;如果在事务执行之前被修改&#xff0c;则事务被打断。 MULTI&#xff1a;标记一个事务的开始。…

Redis原理篇(二)

Redis原理 Redis数据结构 Redis网络模型 RESP协议 Redis内存回收 Redis原理篇 一、原理篇-Redis数据结构 1.1 Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不…

JVM理论(六)执行引擎--垃圾回收

概述 垃圾: 指的是在运行程序中没有任何指针指向的对象垃圾回收目的: 为了及时清理空间使得程序可以正常运行垃圾回收机制: JVM采取的是自动内存管理,即JVM负责对象的创建以及回收,将程序员从繁重的内存管理释放出来,更加专注业务的开发垃圾回收区域: 频繁收集Young区(新生代)…

【前端知识】React 基础巩固(三十二)——Redux的三大原则、使用流程及实践

React 基础巩固(三十二)——Redux的三大原则 一、Redux的三大原则 单一数据源 整个应用程序的state被存储在一颗object tree 中&#xff0c;并且这个object tree 只存储在一个store中&#xff1b;Redux并没有强制让我们不能创建多个Store&#xff0c;但是那样做不利于数据维护…

Java网络编程(一)基本网络概念

一、网络 网络(network) 是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。网络通常用线缆连接&#xff0c;数据位转换为电磁波&#xff0c;通过线缆移动。不过&#xff0c;无线网络会通过无线电波传输数据&#xff0c;许多长距离的传输现在会用通过玻璃纤维发送可见…

全加器(多位)的实现

一&#xff0c;半加器 定义 半加器&#xff08;Half Adder&#xff09;是一种用于执行二进制数相加的简单逻辑电路。它可以将两个输入位的和&#xff08;Sum&#xff09;和进位&#xff08;Carry&#xff09;计算出来。 半加器有两个输入&#xff1a;A 和 B&#xff0c;分别代表…

【Unity学习笔记】AssetBundle

文章目录 什么是AB包&#xff1f;为什么使用AB包? 如何导出AB包AB包导出文件 如何使用AB包AB包的加载同步加载异步加载 AB包的卸载依赖加载 AB包资源管理器 什么是AB包&#xff1f; AssetBundle是Unity提供的一种用于存储资源的压缩集合&#xff0c;它可以存储任何一种Unity可…

分布式操作系统会不会是操作系统的终端形态?

昨天一位网友私信我&#xff0c;提出一个问题&#xff1a;“Laxcus分布式操作系统会不会是操作系统发展的终极形态&#xff1f;”。今天觉得有必要把这件事说一说&#xff0c;所以就忙里偷闲写下这篇文章。 咱们先说结论&#xff1a;是也不是&#xff0c;需要具体情况具…

shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和评价流畅度。

目录 前言&#xff1a; 开篇前述&#xff1a; 一、设计初衷 二、设定预期倒推查找解决方案 设计实现部分 一、确定数据来源原因&#xff08;dumpsys SurfaceFlinger --latency&#xff09; 二、根据需求确定计算规则 三、代码实现 四、监控数据可视化交互结果设计 前言…

uni-app个人中心

一. 介绍uni-app&#xff1a; uni-app 是基于Vue.js框架开发的一个跨平台移动应用开发框架&#xff0c;可以同时支持多个平台&#xff08;如iOS、Android、Web等&#xff09;的应用开发。采用了统一的语法和组件规范&#xff0c;可以大大简化跨平台开发的工作&#xff0c;提高…

Redis持久化 :rdb与aof的持久化操作

redis持久化&#xff1a;分别启用rdb和aof&#xff0c;并查看是否有对应文件生成 rdb&#xff1a; #save 秒钟 写操作次数 如果在设置时间内写入数据达到规定的次数&#xff0c;则产生一次快照 [rootlocalhost redis-stable]# vim /etc/redis.conf :/save #查找有save关键字的…