问题描述
atm 参加了速算训练班,经过刻苦修炼,对以 2 为底的对数算得飞快,人称 Log 大侠。

一天,Log 大侠的好友 drd 有一些整数序列需要变换,Log 大侠正好施展法力…

变换的规则是: 对其某个子序列的每个整数变为: [log2 x + 1] 其中 [] 表示向下取整

就是对每个数字求以 2 为底的对数,然后取下整。

例如对序列 3 4 2 操作一次后,这个序列会变成 2 3 2。

drd 需要知道,每次这样操作后,序列的和是多少。

输入格式
第一行两个正整数 n,m 。
第二行 n 个数,表示整数序列,都是正数。
接下来 m 行,每行两个数 L,R 表示 atm 这次操作的是区间 [L, R],数列序号从 1 开始。

输出格式
输出 m 行,依次表示 atm 每做完一个操作后,整个序列的和。

样例输入
3 3
5 6 4
1 2
2 3
1 3

样例输出
8
6

数据范围
对于 30% 的数据, n, m ≤ 103
对于 100% 的数据, n, m ≤ 105


题解
位运算:

1 << x:等价于 2x

#include <iostream>
using namespace std;int a[100010];int main()
{int n, m;cin >> n >> m;for (int i = 1; i <= n; i ++) cin >> a[i];while(m --){int l, r;cin >> l >> r;for (int i = l; i <= r; i ++)for (int j = 0; j <= 20; j ++)if(1 << j > a[i]){a[i] = j;break;}int ans = 0;for (int i = 1; i <= n; i ++) ans += a[i];cout << ans << endl;}return 0;
}

ps:按理说,极限情况下 n * m = 1010,居然还是过了

题解二
库函数:

#include <iostream>
#include <cmath>
using namespace std;int a[100010];int main()
{int n, m;cin >> n >> m;int ans = 0;for (int i = 1; i <= n; i ++) {cin >> a[i];ans += a[i];                          // 类似于前缀和}while(m --){int l, r;cin >> l >> r;for (int i = l; i <= r; i ++){ans -= a[i];a[i] = log2(a[i]) + 1;ans += a[i];}cout << ans << endl;}return 0;
}

第五届蓝桥杯(国赛)——Log大侠相关推荐

  1. 第五届蓝桥杯国赛C++B组 Log大侠

    标题:Log大侠 atm参加了速算训练班,经过刻苦修炼,对以2为底的对数算得飞快,人称Log大侠. 一天,Log大侠的好友 drd 有一些整数序列需要变换,Log大侠正好施展法力... 变换的规则是: ...

  2. 蓝桥杯国赛C++A组B组题解整理(第八、七、六、五、四届)

    [写在前面的话19.04.04] 今年省赛的结果出的意外得快,有很多小伙伴来和我分享他们进了省一的喜悦,并问我啥时候更新国赛题解,emmm--不是我不想更新,实在是抽不出时间,有缘再更--虽然不更新题 ...

  3. 蓝桥杯国赛 C/C++ ABC组题解(第四届 ~ 第十二届)

    2020年第十一届蓝桥杯国赛 题号 类型 C++ A组 C++ B组 C++ C组 试题A 结果填空 合数个数 美丽的 2 美丽的 2 试题B 结果填空 含 2 天数 (日期处理) 扩散 (BFS) ...

  4. 蓝桥杯国赛知识点汇总

    蓝桥杯国赛备赛总结知识点,以老师给的为原型,添加自己理解,供大家参考,后期不定时更新. 基础 1.熟练掌握API1.8常用方法 2.大数(高精度)加减乘除 3.并查集 模板: public class ...

  5. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑

    题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...

  6. 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数

    2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...

  7. 蓝桥杯评分标准_新闻 | 人工智能学院创新创业实践中心开展蓝桥杯国赛经验分享会...

    为让各位蓝桥杯国赛选手以饱满精力迎接接下来的比赛,天津科技大学人工智能学院创新创业实践中心邀请到计算机科学与技术专业教研室主任吴江红老师为各位蓝桥杯国赛选手分享经验,提高选手们的应试应赛能力. 吴江红 ...

  8. 第十一届蓝桥杯国赛题目

    以下是第十一届蓝桥杯国赛题目,供大家学习参考(提取码失效可以评论我) 百度云: 链接: https://pan.baidu.com/s/1g1o-px-RUVoXLLhRDS8cXQ 提取码: fgf ...

  9. 2022年十三届蓝桥杯国赛(C/C++大学B组)个人题解

    2022年十三届蓝桥杯国赛(C/C++大学B组)个人题解 更新:成绩出来了,估分50分左右,最后拿了个国二,还差点到国一,有点出乎意料,挺满意了挺满意了. 去年国赛基本都是暴力,最后国三都没拿到(我是 ...

  10. 第十二届蓝桥杯国赛真题+题解 Python

    文章目录 写在前面 试题A:带宽 试题 B: 纯质数 试题C: 完全日期 试题D: 最小权值 试题 E: 大写 试题 F: 123 试题 G: 冰山 试题 H: 和与乘积 试题 I: 二进制问题 试题 ...

最新文章

  1. 如何搭建以太坊私有链
  2. 解决 —— SublimeText3: No module named ‘urllib2′
  3. paper 89:视频图像去模糊常用处理方法
  4. 华为新系统鸿蒙升级平板名单,华为鸿蒙系统升级名单正式确认!全面替换安卓:流畅度比肩iOS...
  5. java 去掉最后一个换行符_Python 教程(一)第一个Python程序
  6. RabbitMQ添加用户
  7. queue java 用法_Java队列(Queue)用法
  8. 解决交通拥堵、监测核辐射、野外搜救…无人机将有哪些神应用?
  9. 安装SQL2012数据库步骤
  10. WPF 自定义命令 以及 命令的启用与禁用
  11. JS将各值拼接JSON串小例
  12. Phalanger 【Php on .net】
  13. bzoj4423[AMPPZ2013]Bytehattan
  14. SQL Injection***技术总汇(ASP+SQL Server版)v1.0
  15. fluent加载第三方(C++,Fortan等)动态链接库
  16. 读书笔记:Sheldon.M.Ross:概率论基础教程:2014.01.22
  17. 【C语言基础学习笔记】一、初始C语言(2)
  18. mysql 减去一月_sql – 如何从日期列中减去一个月
  19. python制作分布图
  20. android代码获取deviceid,获取安卓系统的设备id用getDeviceId()函数

热门文章

  1. PicGo + 七牛云图床配置
  2. AMap + echarts、google map + d3.js分别实现数据可视化中的飞线图(迁徙图)
  3. 补充维生素 你补对了吗
  4. 网络域名与IP地址的关系
  5. MySQL高级---索引优化分析(Explain性能分析 一)
  6. useSetState
  7. 现控笔记(二):状态空间表达式
  8. 性能测评:阿里云服务器ECS通用型g8i实例CPU内存安全存储
  9. Do you want to know me?----Come in.
  10. ⦁ 请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”。