题目

Description

Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链。为了方便,我们用A0,A1…An-1 这n 个正整数描述它们。
一个基因Ax 可以进化为序列中在它之后的基因Ay。这个进化的复杂度,等于Ax | Ax+1…| Ay的值,其中| 是二进制或运算。
Abathur 认为复杂度小于M 的进化的被认为是温和的。它希望计算出温和的进化的对数。

Input

第一行包含两个整数n,m。
接下来一行包含A0,A1…An-1 这n 个正整数,描述这n 个基因。

Output

第一行包含一个整数,表示温和的进化的对数。


解题思路

很显然 x ∣ y &gt; = x 且 &gt; = y x|y&gt;=x且&gt;=y x∣y>=x且>=y,而如果 x ∣ y &lt; M 那 么 ( x + 1 ) ∣ y &lt; M x|y&lt;M那么(x+1)|y&lt;M x∣y<M那么(x+1)∣y<M。
所以我们可以枚举 y y y,并维护 x x x指针,即一个单调(且满足条件)的区间。然后对于这个区间,我们可以直接累加区间的数。


代码

#pragma GCC optimize("O2")
#include<cstdio>
#define LL long long
using namespace std;
LL n,m,a[100002],b[31],ans,w,last=1;
int main()
{freopen("evolve.in","r",stdin); freopen("evolve.out","w",stdout); scanf("%lld%lld",&n,&m); for (register LL i=1;i<=n;i++) scanf("%lld",&a[i]); for (register LL i=1;i<=n;i++){w=0; for (register LL j=0;j<=30;j++) b[j]+=(a[i]>>j)&1,w+=(b[j]!=0)<<j; while (w>=m&&last<i){w=0; for (register LL j=0;j<=30;j++)b[j]-=(a[last]>>j)&1,w+=(b[j]!=0)<<j; last++; }ans+=i-last; }printf("%lld",ans);
}

[jzoj 3518] 【NOIP2013模拟11.6A组】进化序列(evolve){二进制}相关推荐

  1. JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)

    3518. [NOIP2013模拟11.6A组]进化序列(evolve) (File IO): input:evolve.in output:evolve.out Time Limits: 1000 ...

  2. jzoj. 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)

    Description Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链.为了方便,我们用A0,A1-An-1 这n 个正整数描述它们. 一个基因Ax 可以 ...

  3. jzoj2702. 探险jzoj3917. 【NOIP2014模拟11.2A组】福慧双修

    Description 探险家小T好高兴!X国要举办一次溶洞探险比赛,获奖者将得到丰厚奖品哦!小T虽然对奖品不感兴趣,但是这个大振名声的机会当然不能错过! 比赛即将开始,工作人员说明了这次比赛的规则: ...

  4. JZOJ 5956. 【NOIP2018模拟11.7A组】easy LCA

    Description Input Output 输出一行一个整数,表示所求的所有连续子段的权值和. Sample Input 6 1 2 2 6 6 3 3 4 6 5 1 2 3 4 5 6 Sa ...

  5. JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归

    Description Input 第一行一个整数 n,表示数的个数. 第二行n个整数,第i个整数为ai . Output n行一个整数表示答案,第i行表示序列第i个前缀的帅气值. Sample In ...

  6. JZOJ 3912. 【NOIP2014模拟11.2B组】超氧化钾

    Are you ready? 题目: 题意: 分析: 代码: 题目: 传送门 题意: 给定你xxx.yyy,求按照题目给出的z=xz=xz=x modmodmod 1+x1+x1+x modmodmo ...

  7. 3917 【NOIP2014模拟11.2A组】福慧双修 (Standard IO)题解

    目录 目录 原题 Description Input Output Sample Input Sample Output Data Constraint 题解 40分 100分 模型转换 做法 I I ...

  8. JZOJ-senior-5953. 【NOIP2018模拟11.5A组】生死之境

    Time Limits: 2000 ms Memory Limits: 524288 KB Detailed Limits Description 幽幽子正在练习符卡[反魂蝶八分咲] 冥界可以抽象成一 ...

  9. 【NOIP2014模拟11.2B组】超氧化钾

    非常sb的一道题~比赛切掉的我~ Description 作为一个化学小考只有77分的同学,小W感觉很有压力,所以他决定搞化学.今天他开始研究超氧化钾,这是一种很神奇的离子化合物,在高温下空间结构是立 ...

最新文章

  1. C# 将DataTable数据源转换成实体类
  2. import org.apache.http.xxxxxx 爆红,包不存在之解决办法
  3. Eclipse——Java可视化开发环境配置
  4. 一个“小白”眼中的容器
  5. vue 附件上传获取附近内容_vue实现文件上传功能
  6. Windows7虚拟化体验之一:Windows7部署
  7. lambda表达式方法泛型_模板方法模式–使用Lambda表达式,默认方法
  8. 好看的a标签按钮样式
  9. android 动态文本选取,android-用动态文本更新UI
  10. iframe自适高度
  11. yml文件tab 空格_YAML 文件介绍
  12. autocad完全应用指南_2020版AutoCAD软件+操作教程+插件合集,限时3天领
  13. 如何更好使用 ng-zorro-antd 图标
  14. 状语从句不是简单句_简单句、并列句、复合句
  15. ubuntu 18.04/16.04/14.04 双硬盘分区方案
  16. win10卸载AVG AntiVirus Free
  17. ViewFlipper和ViewPager
  18. “SEO是什么意思?”Kyw的通俗回答
  19. 软件测试市场前景怎么样,软件测试的发展前景怎么样?
  20. 二级考python还是office_大学生考二级为什么考office比C语言科目会更有价值

热门文章

  1. 程序员的三观:需要知道什么叫人情
  2. python口号_1947年10月10日,中国人民解放军总部发表宣言,提出的口号是( )
  3. 武汉大学.计算机学院.密码学,武汉大学计算机学院04级《密码学》试题
  4. 电脑感觉,活在电脑里是什么感觉
  5. java importnew_Stackoverflow上人气最旺的10个Java问题(转ImportNew)
  6. ETL过程及常用工具简介
  7. 【疑难解决】EasyNVR启动时输出乱码是什么原因导致的,该如何解决?
  8. 关于指针指向地址中“指向”二字的理解
  9. 福利!5折开抢仅需2189!这个圣诞送你高效编程神器-戴尔官网OptiPlex!
  10. C#如何打印输出原版数组