加法 线段树 + 思维
发布日期:2021-09-25 23:57:49
浏览次数:10
分类:技术文章
本文共 3029 字,大约阅读时间需要 10 分钟。
加法
时间限制: 8 Sec 内存限制: 128 MB [提交] [状态] 题目描述 菜鸡Resee在学加法竖式 具体的,她可能会对{A1,A2,…,Ak}k个数做加法,得到一个和s 如果一次计算中s的每一位都在相加的那些数中对应的位置出现过,那么她认为这次计算是快乐的,不然就是不快乐的。例子如下图:左边的计算是快乐的。右边的是不快乐的,因为s的十位是3,而没有一个数的十位是3
现在Resee的练习本上写了一排n个数。每次她会被要求在第L到第R个数中选一些数相加 她想知道存不存在方案使这一次计算是不快乐的。如果有,s最小是多少 因为Resee还可能涂涂改改,这些数还有可能改变。具体见读入格式 输入 第一行给出 n,Q 分别表示数字个数、操作个数 第二行给出 n 个数表示练习本上的数 接下来 Q 行,每行有两种情况: 1 x y 表示把第 x 个数改成 y 2 L R 表示题目描述中的询问 输出 对于每次询问输出一行,如果有答案就输出最小的 s,否则输出-1 样例输入 Copy 4 4 300 10001 20 20 2 1 3 1 1 310 2 1 3 2 3 3 样例输出 Copy -1 330 -1 提示 第一次询问{20,300,10001},无论怎么加都快乐 第二次询问{20,310,10001},将{20,310}相加是不快乐的,不存在 s 更小的方案 第三次询问{20},无论怎么加都快乐本子上的数非负且在任意时刻小于 1000000
保证 1<=L<=R<=n一天的补题计划被这个题给毁了,不过弄懂了强行不亏。
首先明确题目要求的是不快乐的数,根据题意,不快乐的数只需要一个数位不满足要求即可,一开始看成了快乐的数,结果卡了半天。
那么就不难想到,如果两个数的某一位都不为0,那么相加之后这个位置在结果中对应位置一定是找不到对应值的。由此得知,答案一定是两个数相加,因为求的是最小值,三个数相加的时候一定可以去掉一个数也满足要求,使答案变得更小。 既然是两个尽可能小的数相加,而且只需要一个数位不快乐就行,那么可以考虑维护每个数位的最小值和次小值,当数位为0的时候不进行更新,设为不存在,因为我们要的是都不为0的数。让后枚举每个数位,此时每个数位存的都是能使其不快乐的两个数 (如果存在的话) ,更新答案即可。 因为还有修改操作,那么可以用线段树来维护。#include#include #include #include #include
转载地址:https://blog.csdn.net/DaNIelLAk/article/details/106110385 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月27日 14时06分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CH554E USB单片机 10引脚小封装低成本USB方案
2019-04-29
windows MQTT客户端
2019-04-29
LINUX下挂载(mount)查看树莓派镜像文件
2019-04-29
1元钱的超低成本单芯片USB单片机方案
2019-04-29
单片机/树莓派扩展双串口(TTL和RS485)
2019-04-29
基于CH568芯片的SATA电子盘方案
2019-04-29
linux下C语言判断网络是否连接
2019-04-29
猿来绘Java-40-比较器(Comparable 接口与 CompareTo方法)
2019-04-29
猿来绘Java-45-JDK8新特性可重复注解和类型注解
2019-04-29
2021/4/27课堂总结和作业
2019-04-29
2021.4.28课堂总结和作业
2019-04-29
2021.4.29课堂总结
2019-04-29
2021.4.30课堂总结和作业
2019-04-29
需要吗?2000GB+学习视频教程 面试资料免费下载
2019-04-29
MySQL对已存在数据库表添加自增ID字段
2019-04-29
idea中的一些常用快捷键
2019-04-29
js校验表单后提交表单的三种方法总结【转载】
2019-04-29
欢迎使用CSDN-markdown编辑器
2019-04-29