每日一题~abc356(对于一串连续数字 找规律,开数值桶算贡献)

添加链接描述
在这里插入图片描述
题意:对于给定的n,m 。计算0~n 每一个数和m & 之后,得到的数 的二进制中 1的个数的和。

一位一位的算。最多是60位。
在这里插入图片描述
我们只需要计算 在 1-n这些数上,有多少个数 第i位 为1.
因为是连续的自然数,每一位上1 的出现 必然存在某种规律。
我们从 第零位 开始计数。
第 i 位 的 1 的出现周期是 2^(i+1) ,其中前一半是0,后一半是1.(数量是 2^i个)
想明白这一点之后,
对于整除的那一部分,第i位的贡献是

int w=(long long )1<<i;
n/(w*2)*w 

那么整的部分算完了,接下来算 散 的那一部分

这里可以自己找个例子,算一下。不然很容易错。
max((long long )0,n%(2*w)-w+1)
#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int mod=998244353;
signed main()
{int n,m;cin>>n>>m;int ans=0;for (int i=0;i<60;i++){if (m>>i &1){int w=(long long )1<<i;ans+=n/(w*2)*w+max((long long )0,n%(2*w)-w+1);ans%=mod;}}cout<<ans<<endl;return 0;
}

在这里插入图片描述
可以注意到
ai的数值非常小,不到1e6,这个时候 就有很大可能 开数值桶。
在这里插入图片描述

#include <bits/stdc++.h>
#define int long long 
using namespace std;
const int wc=1e6+5;
int a[wc],s[wc];signed main()
{int n;cin>>n;int t=0;for (int i=0;i<n;i++){cin>>t;a[t]++;}for (int i=1;i<=wc;i++){s[i]=s[i-1]+a[i];}int ans=0;for (int i=1;i<=wc;i++){ans+=a[i]*(a[i]-1)/2;//选择两个相同的数的贡献//枚举左端点 ,比枚举右端点好,因为右端点不一定正好到wc,//后面可能还有一些比a[i]大的数 for (int j=i;j<=wc;j+=i){ans+=a[i]*(j/i)*(s[min(wc,j+i-1)]-s[j==i?i:j-1]);非常优美的代码^_^} }cout<<ans<<"\n";return 0;
}

时间复杂度: 第二层for里面,因为每次都是 i 的倍数,并且有一个上界 wc,所以是调和级数的复杂度,
复杂度为 log wc。
总的复杂度为 wc* log wc

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

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

相关文章

ICMP隧道

后台私信找我获取工具 目录 ICMP隧道作用 ICMP隧道转发TCP上线MSF 开启服务端 生成后门木马 msf开启监听 开启客户端icmp隧道 执行后门木马&#xff0c;本地上线 ICMP隧道转发SOCKS上线MSF 开启服务端 生成后门木马 msf开启监听 开启客户端icmp隧道 ​执行后…

钡铼网关: 轻松实现PLC与OPC UA服务器的双向通信

在当今工业4.0的大潮下&#xff0c;实现不同设备、系统之间的高效通信和数据交换已大势所趋&#xff01;PLC与OPC UA服务器的对接&#xff0c;对于打造智能工厂具有重要意义&#xff0c;本文将深入探讨钡铼技术的网关如何实现这一过程&#xff0c;为用户提供快速且低成本的解决…

Nextflow 可选输入文件

问题 有时候存在需要 process 接收可选的输入文件的场景。 解决方案 可以使用特殊的文件名来标记这类输入参数&#xff0c;类似于一个 placeholder。 可以在assets中创建一个空文件: touch assets/NO_FILE示例代码 params.inputs "$projectDir/data/prots/*{1,2,3}…

8. 隔行变色

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 Excel 表的格子很多&#xff0c;为了避免把某行的数据和相邻行混淆&#xff0c;可以采用隔行变色的样式。 小明设计的样式为&#xff1a;第 11 行蓝色&#xff0c;…

免费听书TV版v1.0.1

使用非常稳定流畅&#xff0c;UI界面设计美观简洁&#xff0c;纯净无广。资源虽然不是特别多&#xff0c;但是日常听书还是可以满足需求。 完全免费&#xff0c;操作简单方便&#xff0c;安装即用&#xff0c;没有任何限制。 可以适配遥控器操作&#xff0c;OK键开启或关闭语…

Qt编程技巧小知识点(1)TCP缓存区数据读取

文章目录 Qt编程技巧小知识点&#xff08;1&#xff09;TCP缓存区数据读取小结 Qt编程技巧小知识点&#xff08;1&#xff09;TCP缓存区数据读取 TCP的socket对内存进行读取&#xff08;使用socket->readall()&#xff09;的时候输出的内容有时会进行局部倒置&#xff0c;其…

ORACLE 数据库ADG切换

主备库切换 一、Switchover 方式切换 一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。 在进行DATA GUARD的物理STANDBY切换前…

stm32单片机的分类与命名

一、Stm32单片机的分类 二、Stm32单片机的命名 例如&#xff1a;STM32F103C8T6

VUE超详细入门

目录 1.什么是 Vue.js 2.Vue.js 优点 Vue中的第一个hello world Vue指令 v-model v-bind v-on v-if v-show v-for Vue 实例生命周期 从传统架构转向单文件架构(通过组件拼接) 安装element-ui使用 1.什么是 Vue.js Vue (读音 /vju ː /&#xff0c;类似于 view) 是…

GPT-5要来了?我的博士生“AI朋友”!

GPT-5 一年半后发布&#xff1f;对此你有何期待&#xff1f; IT之家6月22日消息&#xff0c;在美国达特茅斯工程学院周四公布的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&#xff0c;给出了肯定答案并表示将在一年半后发布。此外&#xff0c;…

Vue2-动画

1.transition过渡 过渡组件&#xff1a;进入/离开 & 列表过渡 — Vue.js [用transition做CSS动画]Enter状态&#xff1a;JS Bin - Collaborative JavaScript Debugging Leave状态&#xff1a;JS Bin - Collaborative JavaScript Debugging 2. animation动画 用animation做…

ABAP:会计凭证批量导入(资产数据,获利能力段)

会计凭证导入会涉及到总账、客户、供应商、金额 、自定义字段增强、获利能力段 *&---------------------------------------------------------------------* *& Report ZFIE014 *&---------------------------------------------------------------------* *&…

关于数组的常见算法

一、案例一 案例说明 案例&#xff1a;定义一个int型的一维数组&#xff0c;包含10个元素&#xff0c;分别赋一些随机整数&#xff0c;然后求出所有元素的最大值&#xff0c;最小值&#xff0c;总和&#xff0c;平均值&#xff0c;并输出出来 要求&#xff1a;所有随机数都是两…

5-3.损失函数

文章最前&#xff1a; 我是Octopus&#xff0c;这个名字来源于我的中文名–章鱼&#xff1b;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github &#xff1b;这博客是记录我学习的点点滴滴&#xff0c;如果您对 Python、Java、AI、算法有兴趣&#xff0c;可以关注我的…

Nginx -Web服务器/反向代理/负载均衡

文章目录 一、web服务1.1 nginx安装1.2 配置文件1.3 Nginx处理Web机制 二、反向代理三、负载均衡3.1 分类3.2 负载相关配置文件3.3 keepalive 提高吞吐量3.4 配置浏览器缓存 附、JMeter性能测试工具 以赛促学内容,大概率感觉会使用nginx做web服务,特对nginx做总结归纳. Nginx是…

(7.10)Java面向对象有关知识点思考

1、继承中要关注如何访问父类中的方法&#xff0c;其中有传递一个隐藏的形参this&#xff0c;及当前对象的地址&#xff0c;通过它调用方法没有问题。 2、抽象时对继承关系的一种优化&#xff1a; ①父类中的方法可以没有方法体&#xff1b; ②子类必须按照规定重写抽象方法…

【性能工程 - eBPF 技术】小白也能学会的 eBPF 技术——初步了解 eBPF 技术(一)

eBPF&#xff0c;即扩展的伯克利包过滤器&#xff08;Extended Berkeley Packet Filter&#xff09;&#xff0c;是从早期的BPF技术发展而来&#xff0c;起初用于高效地过滤网络数据包。随着时间的推移&#xff0c;eBPF已经成为一个强大的、灵活的内核技术&#xff0c;不仅限于…

echart5.5.1版本,倒三角柱状图

加载方法 initChart1(title, id, tag) {var myChart echarts5.init(this.$refs[id]);const _this this;var option {title:{text: title||"",show: title?true:false,top: 24,left: 24},grid:{left: 54,top: 74,bottom: 44,right: 30,},xAxis: {type: category,d…

【Spring成神之路】老兄,来一杯Spring AOP源码吗?

文章目录 一、引言二、Spring AOP的使用三、Spring AOP的组件3.1 Pointcut源码3.2 Advice源码3.3 Advisor源码3.4 Aspect源码 四、Spring AOP源码刨析4.1 configureAutoProxyCreator源码解析4.2 parsePointcut源码解析4.3 parseAdvisor源码解析4.4 parseAspect源码解析4.5 小总…

电脑缺少dll文件是怎么回事?教你5种有效的解决方法

当您的计算机显示DLL文件已经遗失时&#xff0c;您应如何应对呢&#xff1f;实际上&#xff0c;针对此类DLL文件的处置过程相对来说较为简易。今日&#xff0c;我们在此为大家详细介绍此领域的相关知识&#xff0c;让大家轻松解决电脑中因丢失DLL文件而产生的问题。 一、关于DL…