牛客周赛144-D
283 字
1 分钟
牛客周赛144-D
考点: 位运算 , 同等取余转组合数
题面
给定一个区间 和一个整数 k,其中 k 是 2 的非负整数次幂。
请计算有多少个二元组 ,满足 是 的倍数。
思考
要使 是 的倍数,且发现 是 2 的非负整数次幂。则 k 的二进制一定是由 一个1和个0组成。所以对于所有 当 的二进制后缀有 个0的时候则成立。 当 的后 个二进制数相同时成立一个二元组,在所有数 里共有R-L+1 个数字,对于每种后缀最少有 种可能。这一部分共有 合法二元组。对于剩下的 (R-L+1)%k 则有然后将这两个公式求和即可
代码
signed main(){ int l,r,k; cin>>l>>r>>k; int n=r-l+1; int q=n/k; long long ans=q*k*(q-1)/2+n%k*q; cout<<ans<<endl;}思维亮点
用2的次幂的倍数来将一个区间的数字按 余 来分类然后通过组合数)计算来得到答案
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
相关文章 智能推荐
1
五月份上赛季训练计划
算法训练 五月份上赛季训练计划
2
考研计划
考研计划 对考研的想法
3
Firefly 代码块示例
文章示例 在Firefly中使用表达性代码的代码块在 Markdown 中的外观。
4
Firefly 布局系统详解
博客指南 深入了解 Firefly 的布局系统,包括侧边栏布局(左侧/双侧)和文章列表布局(列表/网格),以及自适应网格列数。
5
Firefly 一款清新美观的 Astro 博客主题模板
文章示例 Firefly 是一款基于 Astro 框架和 Fuwari 模板开发的清新美观且现代化个人博客主题模板,专为技术爱好者和内容创作者设计。该主题融合了现代 Web 技术栈,提供了丰富的功能模块和高度可定制的界面,让您能够轻松打造出专业且美观的个人博客网站。
随机文章 随机推荐