[jzoj 3518] 【NOIP2013模拟11.6A组】进化序列(evolve){二进制}
题目
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 > = x 且 > = y x|y>=x且>=y x∣y>=x且>=y,而如果 x ∣ y < M 那 么 ( x + 1 ) ∣ y < M x|y<M那么(x+1)|y<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){二进制}相关推荐
- JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
3518. [NOIP2013模拟11.6A组]进化序列(evolve) (File IO): input:evolve.in output:evolve.out Time Limits: 1000 ...
- jzoj. 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
Description Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链.为了方便,我们用A0,A1-An-1 这n 个正整数描述它们. 一个基因Ax 可以 ...
- jzoj2702. 探险jzoj3917. 【NOIP2014模拟11.2A组】福慧双修
Description 探险家小T好高兴!X国要举办一次溶洞探险比赛,获奖者将得到丰厚奖品哦!小T虽然对奖品不感兴趣,但是这个大振名声的机会当然不能错过! 比赛即将开始,工作人员说明了这次比赛的规则: ...
- 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 ...
- JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归
Description Input 第一行一个整数 n,表示数的个数. 第二行n个整数,第i个整数为ai . Output n行一个整数表示答案,第i行表示序列第i个前缀的帅气值. Sample In ...
- JZOJ 3912. 【NOIP2014模拟11.2B组】超氧化钾
Are you ready? 题目: 题意: 分析: 代码: 题目: 传送门 题意: 给定你xxx.yyy,求按照题目给出的z=xz=xz=x modmodmod 1+x1+x1+x modmodmo ...
- 3917 【NOIP2014模拟11.2A组】福慧双修 (Standard IO)题解
目录 目录 原题 Description Input Output Sample Input Sample Output Data Constraint 题解 40分 100分 模型转换 做法 I I ...
- JZOJ-senior-5953. 【NOIP2018模拟11.5A组】生死之境
Time Limits: 2000 ms Memory Limits: 524288 KB Detailed Limits Description 幽幽子正在练习符卡[反魂蝶八分咲] 冥界可以抽象成一 ...
- 【NOIP2014模拟11.2B组】超氧化钾
非常sb的一道题~比赛切掉的我~ Description 作为一个化学小考只有77分的同学,小W感觉很有压力,所以他决定搞化学.今天他开始研究超氧化钾,这是一种很神奇的离子化合物,在高温下空间结构是立 ...
最新文章
- C# 将DataTable数据源转换成实体类
- import org.apache.http.xxxxxx 爆红,包不存在之解决办法
- Eclipse——Java可视化开发环境配置
- 一个“小白”眼中的容器
- vue 附件上传获取附近内容_vue实现文件上传功能
- Windows7虚拟化体验之一:Windows7部署
- lambda表达式方法泛型_模板方法模式–使用Lambda表达式,默认方法
- 好看的a标签按钮样式
- android 动态文本选取,android-用动态文本更新UI
- iframe自适高度
- yml文件tab 空格_YAML 文件介绍
- autocad完全应用指南_2020版AutoCAD软件+操作教程+插件合集,限时3天领
- 如何更好使用 ng-zorro-antd 图标
- 状语从句不是简单句_简单句、并列句、复合句
- ubuntu 18.04/16.04/14.04 双硬盘分区方案
- win10卸载AVG AntiVirus Free
- ViewFlipper和ViewPager
- “SEO是什么意思?”Kyw的通俗回答
- 软件测试市场前景怎么样,软件测试的发展前景怎么样?
- 二级考python还是office_大学生考二级为什么考office比C语言科目会更有价值
热门文章
- 程序员的三观:需要知道什么叫人情
- python口号_1947年10月10日,中国人民解放军总部发表宣言,提出的口号是( )
- 武汉大学.计算机学院.密码学,武汉大学计算机学院04级《密码学》试题
- 电脑感觉,活在电脑里是什么感觉
- java importnew_Stackoverflow上人气最旺的10个Java问题(转ImportNew)
- ETL过程及常用工具简介
- 【疑难解决】EasyNVR启动时输出乱码是什么原因导致的,该如何解决?
- 关于指针指向地址中“指向”二字的理解
- 福利!5折开抢仅需2189!这个圣诞送你高效编程神器-戴尔官网OptiPlex!
- C#如何打印输出原版数组