首页 > 其他分享 >牛客周赛 Round 12 D 小美的区间异或和

牛客周赛 Round 12 D 小美的区间异或和

时间:2023-09-18 21:13:54浏览次数:45  
标签:周赛 12 200005 int 美的 long 二进制位 异或 dp

Link

首先这个题目的限制卡的很死,最好是O(n)解决,其次当看到异或的时候,就可以考虑按照二进制位进行计算。

对于这个题,我们定义\(dp_i\)表示以\(a_i\)为最右端的子区间的答案的和

那么首先可以想到,贡献给这个答案的有两个部分,包括\(a_i\)的和不包括的,其中不包括\(a_i\)的部分的答案就会是
\(dp_{i-1}\),然后对于包括的部分呢?

我们按照每一个二进制位进行计算贡献,并且统计一下前面有多少次可能的和此位异或后为1的

然后在把这个数可以提供的次数统计上来继续向后计算就可以了.

#include<iostream>
#include<cstdio>
using namespace std;
int n;
long long a[200005];
long long ans;
long long dp[200005];
long long cnt[200005][2];
const long long mod=1e9+7;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;++i){
        scanf("%lld",&a[i]);
    }
    for(int i=1;i<=n;++i){
        dp[i]=dp[i-1];
        for(int j=0;j<31;++j){
            int f=(a[i]>>j)&1;
            dp[i]=(dp[i]+cnt[j][1-f]*(1<<j)%mod)%mod;
            cnt[j][f]=(cnt[j][f]+i)%mod;
            //为什么这里会是加i呢?因为往后计算的时候会有i个最右端是a[k]的区间包括着这里的a[i]
        }
    }
    for(int i=1;i<=n;++i){
        ans=(ans+dp[i])%mod;
    }
    cout<<ans;
    return 0;
}

标签:周赛,12,200005,int,美的,long,二进制位,异或,dp
From: https://www.cnblogs.com/For-Miku/p/17713051.html

相关文章

  • LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解
    ⭐️本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]和BaguTreePro知识星球提问。学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场LeetCode周赛的解题报告,一......
  • Debian 12源
    更新Debian12源更新现有的软件至Debian11的最新版本:sudoapt-getupdatesudoapt-getupgrade然后把 /etc/apt/sources.list 里面的内容全部注释掉,增加以下Debian12的软件源:国内常见镜像站点Debian全球镜像站列表:https://www.debian.org/mirror/list。下面列......
  • 12340政策是好的,怎奈外包糊弄事
     接起来12340,自动播放音乐1分钟,自动挂断。          首页时政要闻国内思想经济科教旅游城事独家本土北国风光地方联播草原足球音视图文明网学习网内蒙古好故事预决算公示您当前的位置: 内蒙古新闻网  >  新闻中心  >  要闻......
  • 【DSP视频教程】第11期:插补算法,曲线拟合丝滑顺畅,统计函数和基础函数加速实现,汇集SIMD,
    视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 DSP视频教程有段时间没有更新了。当前DSP库从CMSIS软件包里面独立出来,并且更新非常频繁,所以本期视频教程优先给大家简单介绍下新版DSP,然后为大家详细介绍了基础函数,统计函数和插补函数。其中基础函数里......
  • Vm虚拟机安装 黑苹果系统(提供获取最新版本的下载渠道): 免费版本:如 12.6.3 付费版本:ma
    目录一:安装系统环境相关程序下载1、系统安装包iso下载地址:2、Mac虚拟机插件下载地址:3、vm虚拟机安装二、Vm安装黑苹果虚拟机系统1、运行环境:2、安装过程解锁工具3、创建虚拟机4、修改Mac的虚拟机的配置信息5、安装苹果虚拟机系统 正文一:安装系统环境相关程序下载1、系统安......
  • 通过Sysmon+Nxlogs收集Windows Server 2012服务器日志-并以Syslog形式发送Json格式数
    0x01环境介绍WindowsServer2012已经安装部署好了域控,目的除了收集Windows服务器本身的日志外还收集域控环境下的各种日志。0x02Nxlog配置和使用使用社区版本即可,下载地址:https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition使用的版本是当前最新版本安装过程就省略,......
  • 12 款神级 IDEA 插件
    日常的业务功能开发,大部分情况下,核心代码差不多只占了项目的20%,剩下的80%基本就是一些体力活,配置项等;这80%的代码,却消耗了我们大量的时间,而这部分代码,也不会对我们带来大的提升,今天给大家推荐12款我个人常用的优质的插件,旨在快速帮大家完成这80%体力代码,将更多的时间投入在核心功......
  • 第六节:12306下单逻辑深度剖析优化
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • 虚拟机VMware12安装激活(超详细教程)适用于Win7版本
    1、下载VMware-workstation链接:https://pan.baidu.com/s/1BTHgStcKX38Ysx8MDqJEXg?pwd=h5hu (里面含激活教程和许可证秘钥)2、解压后执行VMware-workstation3、进入安装界面,点击【下一步】4、选择“增强型键盘驱动程序”, 点击【下一步】 5、点击【下一步】 6、继续......
  • 2021-7-12-Holiday1
    layout:posttitle:xtx暑假第一周日志categories:日志tags:-日志-2021暑期日志BGImage:'https://github.xutongxin.me/https://raw.githubusercontent.com/xutongxin1/PictureBed/master/img0/20210719002113.png'jekyll-theme-WuK:musicid:'1406......