JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
(File IO): input:evolve.in output:evolve.out
Time Limits: 1000 ms Memory Limits: 262144 KB
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
第一行包含一个整数,表示温和的进化的对数。
Sample Input
4 6
1 3 5 1
Sample Output
2
Data Constraint
对于30% 的数据,1 <= n <=1000。
对于100% 的数据,1 <= n<= 100000,0 <= m <= 2^30,1<= Ai<= 2^30。
题解
两种解法:
一种是类似RMQ的倍增算法
另一种是……(我也不知道,有点像单调队列……反正是队列)
我用的是第二种,虽然不知道叫什么算法,但是也讲讲
用队列que表示当前选择
a [ i ] 表示第i位的1的个数
num表示当前进化复杂度
如果当前值x,x|num>m就把队首丢掉
代码
#include<cstdio>
#include<queue>
#include<cmath>
#define lowbit(a) ((a)&-(a))
#define qu(q) ((long)log2(lowbit(q)))
#define N 32
using namespace std;
queue<long>que;
long a[N];
int main()
{ long n,m,i,q,num,x,ans=0;
freopen("evolve.in","r",stdin);
freopen("evolve.out","w",stdout);
scanf("%ld%ld",&n,&m);
num=0;
for(i=1;i<=n;i++){
scanf("%ld",&x);
while((num|x)>m){
for(q=que.front();q;q^=lowbit(q)){
a[qu(q)]--;
if(!a[qu(q)])
num^=lowbit(q);
}
que.pop();
}
num|=x;
que.push(x);
for(q=x;q;q^=lowbit(q))
a[qu(q)]++;
ans+=que.size()-1;
}
printf("%ld\n",ans);
return 0;
}
JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)的更多相关文章
- JZOJ 3509. 【NOIP2013模拟11.5B组】倒霉的小C
3509. [NOIP2013模拟11.5B组]倒霉的小C(beats) (File IO): input:beats.in output:beats.out Time Limits: 1000 ms ...
- JZOJ 3508. 【NOIP2013模拟11.5B组】好元素
3508. [NOIP2013模拟11.5B组]好元素(good) (File IO): input:good.in output:good.out Time Limits: 2000 ms Mem ...
- JZOJ 3505. 【NOIP2013模拟11.4A组】积木(brick)
3505. [NOIP2013模拟11.4A组]积木(brick) (File IO): input:brick.in output:brick.out Time Limits: 1000 ms Me ...
- JZOJ 3526. 【NOIP2013模拟11.7A组】不等式(solve)
3526. [NOIP2013模拟11.7A组]不等式(solve) (File IO): input:solve.in output:solve.out Time Limits: 1000 ms M ...
- [jzoj]3506.【NOIP2013模拟11.4A组】善良的精灵(fairy)(深度优先生成树)
Link https://jzoj.net/senior/#main/show/3506 Description 从前有一个善良的精灵. 一天,一个年轻人B找到她并请他预言他的未来.这个精灵透过他的水 ...
- JZOJ【NOIP2013模拟联考14】隐藏指令
JZOJ[NOIP2013模拟联考14]隐藏指令 题目 Description 在d维欧几里得空间中,指令是一个长度为2N的串.串的每一个元素为d个正交基的方向及反方向之一.例如,d = 1时(数轴) ...
- [jzoj 5343] [NOIP2017模拟9.3A组] 健美猫 解题报告 (差分)
题目链接: http://172.16.0.132/senior/#main/show/5343 题目: 题解: 记旋转i次之后的答案为$ans_i$,分别考虑每个元素对ans数组的贡献 若$s_i& ...
- [JZOJ 4307] [NOIP2015模拟11.3晚] 喝喝喝 解题报告
题目链接: http://172.16.0.132/senior/#main/show/4307 题目: 解题报告: 题目询问我们没出现坏对的连续区间个数 我们考虑从左到有枚举右端点$r$,判断$a[ ...
- 2017.07.11【NOIP提高组】模拟赛B组
Summary 今天的比赛打得还不错,第一题被同桌灌输的贪心,纯模拟洗脑了,然后steal的看了一下,发现怎么也对不了,一直在检查.最后10分钟才找出反例,推出动态规划方程,没有想到怎么转移,比赛就结 ...
随机推荐
- day39-进程-队列
#队列Queue:进程之间数据是隔离的,不共享的,但是通过multiprocessing的Queue可以实现进程之间的通信. #1.先进先出:把1 2 3放到队列里,按1 2 3的顺序拿出来. fro ...
- SpringBoot1.X /2.X使用@Component注解注入为java.lang.NullPointException 问题小结
问题简述: 我们在使用Spring系的产品的时候总是想当然的以为所有指定的Bean都会让Spring来管理,其实不然,即使是Spring出品的产品也不全是的哦,以下是我遇到的一个使用@Componen ...
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
为了解答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”这个问题,也为了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯糊涂的地方再系统 ...
- Spring Security Config : 注解 EnableWebSecurity 启用Web安全
https://blog.csdn.net/andy_zhang2007/article/details/90023901
- 以elasticsearch-hadoop 向elasticsearch 导数,丢失数据的问题排查
实际这是很久之前的问题了,当时没时间记录 这里简单回顾 项目基于 数据架构不方便说太细,最精简的 somedata-> [kafka]->spark-stream->elastics ...
- 收集到的技术相关网址——python
1.Python中常用数据库访问接口模块 专用数据库连接模块——MySQL.SQLite.PostgreSQL.Oracle.IBM DB2.Infomix.Interbase.Sybase.SQL ...
- LibreOJ β Round #2」贪心只能过样例
题目友链:https://loj.ac/problem/515 话说这题蛮简单,bitset暴力直接过. 话不多说,上代码! #include <bits/stdc++.h> using ...
- jstl之核心标签
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- ContentType明细对照表(文件类型相关的设置)
文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .*( 二进制流,不知道下载文件类型) application/octet-st ...
- 概念--Maven仓库
转:Maven:mirror和repository 区别 Tip: 默认中央仓库的地址:https://repo.maven.apache.org/maven2 1.Maven仓库主要有2种 remo ...